import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.TreeSet;
import org.opendaylight.controller.yang.common.QName;
import org.opendaylight.controller.yang.model.api.ContainerSchemaNode;
import org.opendaylight.controller.yang.model.api.UnknownSchemaNode;
import org.opendaylight.controller.yang.parser.builder.api.AbstractSchemaNodeBuilder;
import org.opendaylight.controller.yang.parser.builder.api.GroupingBuilder;
-import org.opendaylight.controller.yang.parser.builder.api.TypeDefinitionAwareBuilder;
import org.opendaylight.controller.yang.parser.builder.api.TypeDefinitionBuilder;
+import org.opendaylight.controller.yang.parser.util.Comparators;
-public final class RpcDefinitionBuilder extends AbstractSchemaNodeBuilder implements TypeDefinitionAwareBuilder {
+public final class RpcDefinitionBuilder extends AbstractSchemaNodeBuilder {
private boolean isBuilt;
private final RpcDefinitionImpl instance;
private ContainerSchemaNodeBuilder inputBuilder;
private final Set<TypeDefinitionBuilder> addedTypedefs = new HashSet<TypeDefinitionBuilder>();
private final Set<GroupingBuilder> addedGroupings = new HashSet<GroupingBuilder>();
- RpcDefinitionBuilder(final QName qname, final int line) {
- super(qname, line);
+ RpcDefinitionBuilder(final int line, final QName qname) {
+ super(line, qname);
this.instance = new RpcDefinitionImpl(qname);
}
instance.setInput(input);
instance.setOutput(output);
- instance.setPath(path);
+ instance.setPath(schemaPath);
// TYPEDEFS
- final Set<TypeDefinition<?>> typedefs = new HashSet<TypeDefinition<?>>();
+ final Set<TypeDefinition<?>> typedefs = new TreeSet<TypeDefinition<?>>(Comparators.SCHEMA_NODE_COMP);
for (TypeDefinitionBuilder entry : addedTypedefs) {
typedefs.add(entry.build());
}
instance.setTypeDefinitions(typedefs);
// GROUPINGS
- final Set<GroupingDefinition> groupings = new HashSet<GroupingDefinition>();
+ final Set<GroupingDefinition> groupings = new TreeSet<GroupingDefinition>(Comparators.SCHEMA_NODE_COMP);
for (GroupingBuilder entry : addedGroupings) {
groupings.add(entry.build());
}
instance.setGroupings(groupings);
// UNKNOWN NODES
- final List<UnknownSchemaNode> unknownNodes = new ArrayList<UnknownSchemaNode>();
- for (UnknownSchemaNodeBuilder b : addedUnknownNodes) {
- unknownNodes.add(b.build());
+ if (unknownNodes == null) {
+ unknownNodes = new ArrayList<UnknownSchemaNode>();
+ for (UnknownSchemaNodeBuilder b : addedUnknownNodes) {
+ unknownNodes.add(b.build());
+ }
+ Collections.sort(unknownNodes, Comparators.SCHEMA_NODE_COMP);
}
instance.setUnknownSchemaNodes(unknownNodes);
return addedTypedefs;
}
- @Override
public void addTypedef(final TypeDefinitionBuilder type) {
addedTypedefs.add(type);
}
final int prime = 31;
int result = 1;
result = prime * result + ((qname == null) ? 0 : qname.hashCode());
- result = prime * result + ((path == null) ? 0 : path.hashCode());
+ result = prime * result + ((schemaPath == null) ? 0 : schemaPath.hashCode());
return result;
}
} else if (!other.qname.equals(this.qname)) {
return false;
}
- if (other.path == null) {
- if (this.path != null) {
+ if (other.schemaPath == null) {
+ if (this.schemaPath != null) {
return false;
}
- } else if (!other.path.equals(this.path)) {
+ } else if (!other.schemaPath.equals(this.schemaPath)) {
return false;
}
return true;
}
+ @Override
+ public String toString() {
+ return "rpc " + qname.getLocalName();
+ }
+
private final class RpcDefinitionImpl implements RpcDefinition {
private final QName qname;
private SchemaPath path;