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%2Fbuilder%2Fimpl%2FRpcDefinitionBuilder.java;h=1835e841f54ea8b47441ced3d24989201e0688c8;hb=42abb28b99a02f9580f4676ce5c315628e5bcd24;hp=6628f7a88154b95017b4bb02c80c69d2510e3e16;hpb=e98a1027fca4e4b27c0e7e00a3723993935c34ad;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/RpcDefinitionBuilder.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/RpcDefinitionBuilder.java index 6628f7a881..1835e841f5 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/RpcDefinitionBuilder.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/RpcDefinitionBuilder.java @@ -7,36 +7,41 @@ */ package org.opendaylight.yangtools.yang.parser.builder.impl; -import java.util.ArrayList; -import java.util.Collections; +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; import java.util.HashSet; -import java.util.List; +import java.util.Objects; import java.util.Set; import java.util.TreeSet; - import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.GroupingDefinition; import org.opendaylight.yangtools.yang.model.api.RpcDefinition; import org.opendaylight.yangtools.yang.model.api.SchemaPath; -import org.opendaylight.yangtools.yang.model.api.Status; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; -import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; -import org.opendaylight.yangtools.yang.parser.builder.api.AbstractSchemaNodeBuilder; import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder; import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder; -import org.opendaylight.yangtools.yang.parser.util.Comparators; +import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder; +import org.opendaylight.yangtools.yang.parser.builder.util.AbstractSchemaNodeBuilder; +import org.opendaylight.yangtools.yang.parser.builder.util.Comparators; +/** + * @deprecated Pre-Beryllium implementation, scheduled for removal. + */ +@Deprecated public final class RpcDefinitionBuilder extends AbstractSchemaNodeBuilder { - private boolean isBuilt; - private final RpcDefinitionImpl instance; + private RpcDefinitionImpl instance; private ContainerSchemaNodeBuilder inputBuilder; private ContainerSchemaNodeBuilder outputBuilder; - private final Set> typedefs = new TreeSet<>(Comparators.SCHEMA_NODE_COMP); private final Set addedTypedefs = new HashSet<>(); - private final Set groupings = new TreeSet<>(Comparators.SCHEMA_NODE_COMP); private final Set addedGroupings = new HashSet<>(); + RpcDefinitionBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path) { + super(moduleName, line, qname); + this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null"); + } + public ContainerSchemaNodeBuilder getInput() { return inputBuilder; } @@ -45,79 +50,44 @@ public final class RpcDefinitionBuilder extends AbstractSchemaNodeBuilder { return outputBuilder; } - RpcDefinitionBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path) { - super(moduleName, line, qname); - this.schemaPath = path; - this.instance = new RpcDefinitionImpl(qname, path); - } - @Override public RpcDefinition build() { - if (!isBuilt) { - final ContainerSchemaNode input = inputBuilder == null ? null : inputBuilder.build(); - final ContainerSchemaNode output = outputBuilder == null ? null : outputBuilder.build(); - instance.setInput(input); - instance.setOutput(output); - - // TYPEDEFS - for (TypeDefinitionBuilder entry : addedTypedefs) { - typedefs.add(entry.build()); - } - instance.setTypeDefinitions(typedefs); - - // GROUPINGS - for (GroupingBuilder entry : addedGroupings) { - groupings.add(entry.build()); - } - instance.setGroupings(groupings); - - // UNKNOWN NODES - for (UnknownSchemaNodeBuilder b : addedUnknownNodes) { - unknownNodes.add(b.build()); - } - Collections.sort(unknownNodes, Comparators.SCHEMA_NODE_COMP); - instance.setUnknownSchemaNodes(unknownNodes); - - isBuilt = true; + if (instance != null) { + return instance; } - return instance; - } - @Override - public SchemaPath getPath() { - return instance.path; - } + instance = new RpcDefinitionImpl(qname, schemaPath); - @Override - public String getDescription() { - return instance.description; - } + final ContainerSchemaNode input = inputBuilder == null ? null : inputBuilder.build(); + final ContainerSchemaNode output = outputBuilder == null ? null : outputBuilder.build(); + instance.setInput(input); + instance.setOutput(output); - @Override - public void setDescription(final String description) { instance.description = description; - } - - @Override - public String getReference() { - return instance.reference; - } - - @Override - public void setReference(final String reference) { instance.reference = reference; - } + instance.status = status; - @Override - public Status getStatus() { - return instance.status; - } + // TYPEDEFS + final Set> typedefs = new TreeSet<>(Comparators.SCHEMA_NODE_COMP); + for (TypeDefinitionBuilder entry : addedTypedefs) { + typedefs.add(entry.build()); + } + instance.typeDefinitions = ImmutableSet.copyOf(typedefs); - @Override - public void setStatus(Status status) { - if (status != null) { - instance.status = status; + // GROUPINGS + final Set groupings = new TreeSet<>(Comparators.SCHEMA_NODE_COMP); + for (GroupingBuilder builder : addedGroupings) { + groupings.add(builder.build()); + } + instance.groupings = ImmutableSet.copyOf(groupings); + + // UNKNOWN NODES + for (UnknownSchemaNodeBuilder b : addedUnknownNodes) { + unknownNodes.add(b.build()); } + instance.unknownNodes = ImmutableList.copyOf(unknownNodes); + + return instance; } void setInput(final ContainerSchemaNodeBuilder inputBuilder) { @@ -140,7 +110,7 @@ public final class RpcDefinitionBuilder extends AbstractSchemaNodeBuilder { return addedGroupings; } - public void addGrouping(GroupingBuilder grouping) { + public void addGrouping(final GroupingBuilder grouping) { addedGroupings.add(grouping); } @@ -148,13 +118,13 @@ public final class RpcDefinitionBuilder extends AbstractSchemaNodeBuilder { 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; } @Override - public boolean equals(Object obj) { + public boolean equals(final Object obj) { if (obj == null) { return false; } @@ -184,148 +154,4 @@ public final class RpcDefinitionBuilder extends AbstractSchemaNodeBuilder { return "rpc " + qname.getLocalName(); } - private final class RpcDefinitionImpl implements RpcDefinition { - private final QName qname; - private final SchemaPath path; - private String description; - private String reference; - private Status status; - private ContainerSchemaNode input; - private ContainerSchemaNode output; - private final Set> typeDefinitions = new HashSet<>(); - private final Set groupings = new HashSet<>(); - private final List unknownNodes = new ArrayList<>(); - - private RpcDefinitionImpl(final QName qname, final SchemaPath path) { - this.qname = qname; - this.path = path; - } - - @Override - public QName getQName() { - return qname; - } - - @Override - public SchemaPath getPath() { - return path; - } - - @Override - public String getDescription() { - return description; - } - - @Override - public String getReference() { - return reference; - } - - @Override - public Status getStatus() { - return status; - } - - @Override - public ContainerSchemaNode getInput() { - return input; - } - - private void setInput(ContainerSchemaNode input) { - this.input = input; - } - - @Override - public ContainerSchemaNode getOutput() { - return output; - } - - private void setOutput(ContainerSchemaNode output) { - this.output = output; - } - - @Override - public Set> getTypeDefinitions() { - return Collections.unmodifiableSet(typeDefinitions); - } - - private void setTypeDefinitions(Set> typeDefinitions) { - this.typeDefinitions.addAll(typeDefinitions); - } - - @Override - public Set getGroupings() { - return Collections.unmodifiableSet(groupings); - } - - private void setGroupings(Set groupings) { - this.groupings.addAll(groupings); - } - - @Override - public List getUnknownSchemaNodes() { - return Collections.unmodifiableList(unknownNodes); - } - - private void setUnknownSchemaNodes(List unknownNodes) { - if (unknownNodes != null) { - this.unknownNodes.addAll(unknownNodes); - } - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((qname == null) ? 0 : qname.hashCode()); - result = prime * result + ((path == null) ? 0 : path.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - final RpcDefinitionImpl other = (RpcDefinitionImpl) obj; - if (qname == null) { - if (other.qname != null) { - return false; - } - } else if (!qname.equals(other.qname)) { - return false; - } - if (path == null) { - if (other.path != null) { - return false; - } - } else if (!path.equals(other.path)) { - return false; - } - return true; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(RpcDefinitionImpl.class.getSimpleName()); - sb.append("["); - sb.append("qname="); - sb.append(qname); - sb.append(", path="); - sb.append(path); - sb.append(", input="); - sb.append(input); - sb.append(", output="); - sb.append(output); - sb.append("]"); - return sb.toString(); - } - } - }