X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fstmt%2Frfc6020%2Feffective%2FExtensionEffectiveStatementImpl.java;h=fd9623b0bc3f0c59a7f06a387e2f9e7ae3922f42;hb=91f43b1ce6453fef9e04e6673e7637fb5dba8b38;hp=f9f1d8066557af3a21c814b67d07819e0b93f688;hpb=5c3e87d88694d9f0bbb2ab872b4e68c7d6823dd3;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ExtensionEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ExtensionEffectiveStatementImpl.java index f9f1d80665..fd9623b0bc 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ExtensionEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ExtensionEffectiveStatementImpl.java @@ -7,72 +7,57 @@ */ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective; -import java.util.Collection; -import java.util.LinkedList; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; -import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; -import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement; -import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import com.google.common.collect.ImmutableList; +import java.util.ArrayList; import java.util.List; +import java.util.Objects; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; +import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement; +import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -public class ExtensionEffectiveStatementImpl extends - AbstractEffectiveDocumentedNode implements - ExtensionDefinition { +public class ExtensionEffectiveStatementImpl extends AbstractEffectiveDocumentedNode + implements ExtensionDefinition { private final QName qname; - String argument; + private final String argument; private final SchemaPath schemaPath; - ImmutableList unknownNodes; - boolean yin; + private final List unknownNodes; + private final boolean yin; public ExtensionEffectiveStatementImpl( - StmtContext> ctx) { + final StmtContext> ctx) { super(ctx); - this.qname = ctx.getStatementArgument(); - this.schemaPath = Utils.getSchemaPath(ctx); - - initSubstatementCollections(); - initFields(); + this.schemaPath = ctx.getSchemaPath().get(); - } - - private void initFields() { + final List unknownNodesInit = new ArrayList<>(); + for (EffectiveStatement unknownNode : effectiveSubstatements()) { + if (unknownNode instanceof UnknownSchemaNode) { + unknownNodesInit.add((UnknownSchemaNode) unknownNode); + } + } + this.unknownNodes = ImmutableList.copyOf(unknownNodesInit); + // initFields ArgumentEffectiveStatementImpl argumentSubstatement = firstEffective(ArgumentEffectiveStatementImpl.class); - if (argumentSubstatement != null) { this.argument = argumentSubstatement.argument().getLocalName(); - } - - YinElementEffectiveStatementImpl yinElement = firstEffective(YinElementEffectiveStatementImpl.class); - if (yinElement != null) { - this.yin = yinElement.argument(); + YinElementEffectiveStatementImpl yinElement = argumentSubstatement + .firstEffective(YinElementEffectiveStatementImpl.class); + if (yinElement != null) { + this.yin = yinElement.argument(); + } else { + this.yin = false; + } } else { + this.argument = null; this.yin = false; } - - } - - private void initSubstatementCollections() { - Collection> effectiveSubstatements = effectiveSubstatements(); - - List unknownNodesInit = new LinkedList<>(); - - for (EffectiveStatement effectiveStatement : effectiveSubstatements) { - if (effectiveStatement instanceof UnknownSchemaNode) { - UnknownSchemaNode unknownNode = (UnknownSchemaNode) effectiveStatement; - unknownNodesInit.add(unknownNode); - } - } - - this.unknownNodes = ImmutableList.copyOf(unknownNodesInit); } @Override @@ -104,9 +89,8 @@ public class ExtensionEffectiveStatementImpl extends public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + ((qname == null) ? 0 : qname.hashCode()); - result = prime * result - + ((schemaPath == null) ? 0 : schemaPath.hashCode()); + result = prime * result + Objects.hashCode(qname); + result = prime * result + Objects.hashCode(schemaPath); return result; } @@ -122,34 +106,17 @@ public class ExtensionEffectiveStatementImpl extends return false; } ExtensionEffectiveStatementImpl other = (ExtensionEffectiveStatementImpl) obj; - if (qname == null) { - if (other.qname != null) { - return false; - } - } else if (!qname.equals(other.qname)) { - return false; - } - if (schemaPath == null) { - if (other.schemaPath != null) { - return false; - } - } else if (!schemaPath.equals(other.schemaPath)) { - return false; - } - return true; + return Objects.equals(qname, other.qname) && Objects.equals(schemaPath, other.schemaPath); } @Override public String toString() { - StringBuilder sb = new StringBuilder( - ExtensionEffectiveStatementImpl.class.getSimpleName()); - sb.append("["); - sb.append("argument=").append(argument); - sb.append(", qname=").append(qname); - sb.append(", schemaPath=").append(schemaPath); - sb.append(", extensionSchemaNodes=").append(unknownNodes); - sb.append(", yin=").append(yin); - sb.append("]"); - return sb.toString(); + return ExtensionEffectiveStatementImpl.class.getSimpleName() + "[" + + "argument=" + argument + + ", qname=" + qname + + ", schemaPath=" + schemaPath + + ", extensionSchemaNodes=" + unknownNodes + + ", yin=" + yin + + "]"; } -} \ No newline at end of file +}