import org.opendaylight.controller.yang.model.api.Status;
import org.opendaylight.controller.yang.model.api.TypeDefinition;
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.SchemaNodeBuilder;
import org.opendaylight.controller.yang.parser.builder.api.TypeDefinitionAwareBuilder;
import org.opendaylight.controller.yang.parser.builder.api.TypeDefinitionBuilder;
-public final class RpcDefinitionBuilder implements SchemaNodeBuilder,
- TypeDefinitionAwareBuilder {
+public final class RpcDefinitionBuilder extends AbstractSchemaNodeBuilder implements TypeDefinitionAwareBuilder {
private boolean isBuilt;
private final RpcDefinitionImpl instance;
- private final int line;
- private final QName qname;
- private SchemaPath schemaPath;
private ContainerSchemaNodeBuilder inputBuilder;
private ContainerSchemaNodeBuilder outputBuilder;
private final Set<TypeDefinitionBuilder> addedTypedefs = new HashSet<TypeDefinitionBuilder>();
private final Set<GroupingBuilder> addedGroupings = new HashSet<GroupingBuilder>();
- private final List<UnknownSchemaNodeBuilder> addedUnknownNodes = new ArrayList<UnknownSchemaNodeBuilder>();
RpcDefinitionBuilder(final QName qname, final int line) {
- this.qname = qname;
- this.line = line;
+ super(qname, line);
this.instance = new RpcDefinitionImpl(qname);
}
@Override
public RpcDefinition build() {
if (!isBuilt) {
- final ContainerSchemaNode input = inputBuilder.build();
- final ContainerSchemaNode output = outputBuilder.build();
+ instance.setDescription(description);
+ instance.setReference(reference);
+ instance.setStatus(status);
+
+ final ContainerSchemaNode input = inputBuilder == null ? null : inputBuilder.build();
+ final ContainerSchemaNode output = outputBuilder == null ? null : outputBuilder.build();
instance.setInput(input);
instance.setOutput(output);
- instance.setPath(schemaPath);
+ instance.setPath(path);
// TYPEDEFS
final Set<TypeDefinition<?>> typedefs = new HashSet<TypeDefinition<?>>();
return instance;
}
- @Override
- public int getLine() {
- return line;
- }
-
void setInput(final ContainerSchemaNodeBuilder inputBuilder) {
this.inputBuilder = inputBuilder;
}
addedTypedefs.add(type);
}
- public void addGrouping(GroupingBuilder grouping) {
- addedGroupings.add(grouping);
- }
-
- @Override
- public SchemaPath getPath() {
- return schemaPath;
- }
-
- @Override
- public void setPath(SchemaPath schemaPath) {
- this.schemaPath = schemaPath;
+ public Set<GroupingBuilder> getGroupings() {
+ return addedGroupings;
}
- @Override
- public void setDescription(final String description) {
- instance.setDescription(description);
- }
-
- @Override
- public void setReference(final String reference) {
- instance.setReference(reference);
- }
-
- @Override
- public void setStatus(final Status status) {
- instance.setStatus(status);
- }
-
- @Override
- public QName getQName() {
- return null;
- }
-
- @Override
- public void addUnknownSchemaNode(final UnknownSchemaNodeBuilder unknownNode) {
- addedUnknownNodes.add(unknownNode);
+ public void addGrouping(GroupingBuilder grouping) {
+ addedGroupings.add(grouping);
}
@Override
public int hashCode() {
- return qname.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
} else if (!other.qname.equals(this.qname)) {
return false;
}
+ if (other.path == null) {
+ if (this.path != null) {
+ return false;
+ }
+ } else if (!other.path.equals(this.path)) {
+ return false;
+ }
return true;
}
@Override
public String toString() {
- StringBuilder sb = new StringBuilder(
- RpcDefinitionImpl.class.getSimpleName() + "[");
+ StringBuilder sb = new StringBuilder(RpcDefinitionImpl.class.getSimpleName() + "[");
sb.append("qname=" + qname);
sb.append(", path=" + path);
sb.append(", input=" + input);