*/
package org.opendaylight.yangtools.yang.data.impl.leafref;
-import java.util.LinkedList;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
import org.opendaylight.yangtools.yang.common.QNameModule;
class QNameWithPredicateBuilder {
- private LinkedList<QNamePredicate> qnamePredicates;
+ private final List<QNamePredicate> qnamePredicates = new ArrayList<>();
private QNameModule moduleQname;
private String localName;
- public static QNameWithPredicateBuilder UP_PARENT_BUILDER = new QNameWithPredicateBuilder(
+ public static final QNameWithPredicateBuilder UP_PARENT_BUILDER = new QNameWithPredicateBuilder(
null, "..") {
@Override
public QNameWithPredicate build() {
public QNameWithPredicateBuilder(final QNameModule moduleQname, final String localName) {
this.moduleQname = moduleQname;
this.localName = localName;
- this.qnamePredicates = new LinkedList<QNamePredicate>();
}
public QNameWithPredicate build() {
final QNameWithPredicateImpl qNameWithPredicateImpl = new QNameWithPredicateImpl(
moduleQname, localName, qnamePredicates);
- this.qnamePredicates = new LinkedList<QNamePredicate>();
-
+ // QNameWithPredicateImpl has taken a copy
+ qnamePredicates.clear();
return qNameWithPredicateImpl;
}
- public LinkedList<QNamePredicate> getQNamePredicates() {
+ public List<QNamePredicate> getQNamePredicates() {
return qnamePredicates;
}
return false;
}
final QNameWithPredicateBuilder other = (QNameWithPredicateBuilder) obj;
- if (localName == null) {
- if (other.localName != null) {
- return false;
- }
- } else if (!localName.equals(other.localName)) {
- return false;
- }
- return moduleQname.equals(other.moduleQname);
+ return Objects.equals(localName, other.localName) && moduleQname.equals(other.moduleQname);
+ }
+
+ @Override
+ public int hashCode() {
+ int result = moduleQname != null ? moduleQname.hashCode() : 0;
+ result = 31 * result + Objects.hashCode(localName);
+ return result;
}
@Override
final StringBuilder sb = new StringBuilder();
if (moduleQname != null) {
- sb.append("(" + moduleQname.getNamespace());
- sb.append("?revision=" + moduleQname.getRevision());
- sb.append(")");
+ sb.append('(').append(moduleQname.getNamespace());
+ sb.append("?revision=").append(moduleQname.getRevision());
+ sb.append(')');
}
sb.append(localName);