Signed-off-by: Martin Vitez <mvitez@cisco.com>
public class ChoiceBuilder implements DataSchemaNodeBuilder, ChildNodeBuilder,
AugmentationTargetBuilder {
public class ChoiceBuilder implements DataSchemaNodeBuilder, ChildNodeBuilder,
AugmentationTargetBuilder {
+ private final ChoiceNodeImpl instance;
+ // SchemaNode args
private final QName qname;
private SchemaPath schemaPath;
private final QName qname;
private SchemaPath schemaPath;
- private final ConstraintsBuilder constraints;
- private final ChoiceNodeImpl instance;
private String description;
private String reference;
private Status status = Status.CURRENT;
private String description;
private String reference;
private Status status = Status.CURRENT;
+ private final List<UnknownSchemaNodeBuilder> addedUnknownNodes = new ArrayList<UnknownSchemaNodeBuilder>();
+ // DataSchemaNode args
private boolean augmenting;
private boolean configuration;
private boolean augmenting;
private boolean configuration;
- private String defaultCase;
-
- private final Set<ChoiceCaseBuilder> cases = new HashSet<ChoiceCaseBuilder>();
+ private final ConstraintsBuilder constraints;
+ // DataNodeContainer args
private final Set<TypeDefinitionBuilder> addedTypedefs = new HashSet<TypeDefinitionBuilder>();
private final Set<UsesNodeBuilder> addedUsesNodes = new HashSet<UsesNodeBuilder>();
private final Set<TypeDefinitionBuilder> addedTypedefs = new HashSet<TypeDefinitionBuilder>();
private final Set<UsesNodeBuilder> addedUsesNodes = new HashSet<UsesNodeBuilder>();
+ // AugmentationTarget args
private final Set<AugmentationSchemaBuilder> addedAugmentations = new HashSet<AugmentationSchemaBuilder>();
private final Set<AugmentationSchemaBuilder> addedAugmentations = new HashSet<AugmentationSchemaBuilder>();
- private final List<UnknownSchemaNodeBuilder> addedUnknownNodes = new ArrayList<UnknownSchemaNodeBuilder>();
+ // ChoiceNode args
+ private final Set<ChoiceCaseBuilder> cases = new HashSet<ChoiceCaseBuilder>();
+ private String defaultCase;
public ChoiceBuilder(QName qname) {
this.qname = qname;
public ChoiceBuilder(QName qname) {
this.qname = qname;
instance.setStatus(status);
instance.setAugmenting(augmenting);
instance.setConfiguration(configuration);
instance.setStatus(status);
instance.setAugmenting(augmenting);
instance.setConfiguration(configuration);
+ instance.setConstraints(constraints.build());
instance.setDefaultCase(defaultCase);
// CASES
instance.setDefaultCase(defaultCase);
// CASES
}
instance.setUnknownSchemaNodes(unknownNodes);
}
instance.setUnknownSchemaNodes(unknownNodes);
- instance.setConstraints(constraints.build());
-
@Override
public void addChildNode(DataSchemaNodeBuilder childNode) {
if (!(childNode instanceof ChoiceCaseBuilder)) {
@Override
public void addChildNode(DataSchemaNodeBuilder childNode) {
if (!(childNode instanceof ChoiceCaseBuilder)) {
- ChoiceCaseBuilder caseBuilder = new ChoiceCaseBuilder(childNode.getQName());
+ ChoiceCaseBuilder caseBuilder = new ChoiceCaseBuilder(
+ childNode.getQName());
caseBuilder.addChildNode(childNode);
cases.add(caseBuilder);
} else {
caseBuilder.addChildNode(childNode);
cases.add(caseBuilder);
} else {
import org.opendaylight.controller.yang.model.parser.builder.api.TypeDefinitionBuilder;
import org.opendaylight.controller.yang.model.parser.builder.api.UsesNodeBuilder;
import org.opendaylight.controller.yang.model.parser.builder.api.TypeDefinitionBuilder;
import org.opendaylight.controller.yang.model.parser.builder.api.UsesNodeBuilder;
-public class ChoiceCaseBuilder extends AbstractChildNodeBuilder implements DataSchemaNodeBuilder {
-
+public final class ChoiceCaseBuilder extends AbstractChildNodeBuilder implements
+ DataSchemaNodeBuilder {
private final ChoiceCaseNodeImpl instance;
private final ChoiceCaseNodeImpl instance;
- private final ConstraintsBuilder constraints;
private SchemaPath schemaPath;
private String description;
private String reference;
private Status status = Status.CURRENT;
private SchemaPath schemaPath;
private String description;
private String reference;
private Status status = Status.CURRENT;
+ private final List<UnknownSchemaNodeBuilder> addedUnknownNodes = new ArrayList<UnknownSchemaNodeBuilder>();
private boolean augmenting;
private boolean augmenting;
+ private final ConstraintsBuilder constraints;
private final Set<UsesNodeBuilder> addedUsesNodes = new HashSet<UsesNodeBuilder>();
private final Set<AugmentationSchema> augmentations = new HashSet<AugmentationSchema>();
private final Set<UsesNodeBuilder> addedUsesNodes = new HashSet<UsesNodeBuilder>();
private final Set<AugmentationSchema> augmentations = new HashSet<AugmentationSchema>();
- private final List<UnknownSchemaNodeBuilder> addedUnknownNodes = new ArrayList<UnknownSchemaNodeBuilder>();
ChoiceCaseBuilder(QName qname) {
super(qname);
ChoiceCaseBuilder(QName qname) {
super(qname);
@Override
public void setStatus(Status status) {
@Override
public void setStatus(Status status) {
this.status = status;
}
}
this.status = status;
}
}
@Override
public void addTypedef(TypeDefinitionBuilder typedefBuilder) {
@Override
public void addTypedef(TypeDefinitionBuilder typedefBuilder) {
- throw new UnsupportedOperationException("Can not add type definition to choice case.");
+ throw new UnsupportedOperationException(
+ "Can not add type definition to choice case.");
}
@Override
public void setConfiguration(boolean configuration) {
}
@Override
public void setConfiguration(boolean configuration) {
- throw new UnsupportedOperationException("Can not add config definition to choice case.");
+ throw new UnsupportedOperationException(
+ "Can not add config definition to choice case.");
-
- private static class ChoiceCaseNodeImpl implements ChoiceCaseNode {
+ private class ChoiceCaseNodeImpl implements ChoiceCaseNode {
private final QName qname;
private SchemaPath path;
private String description;
private final QName qname;
private SchemaPath path;
private String description;
}
private void setStatus(Status status) {
}
private void setStatus(Status status) {
this.status = status;
}
}
this.status = status;
}
}
}
private void setUnknownSchemaNodes(List<UnknownSchemaNode> unknownNodes) {
}
private void setUnknownSchemaNodes(List<UnknownSchemaNode> unknownNodes) {
- if(unknownNodes != null) {
+ if (unknownNodes != null) {
this.unknownNodes = unknownNodes;
}
}
this.unknownNodes = unknownNodes;
}
}
@Override
public int hashCode() {
final int prime = 31;
@Override
public int hashCode() {
final int prime = 31;
*/
package org.opendaylight.controller.yang.model.parser.builder.impl;
*/
package org.opendaylight.controller.yang.model.parser.builder.impl;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Collections;
import java.util.List;
import org.opendaylight.controller.yang.model.api.UnknownSchemaNode;
import org.opendaylight.controller.yang.model.parser.builder.api.SchemaNodeBuilder;
import org.opendaylight.controller.yang.model.api.UnknownSchemaNode;
import org.opendaylight.controller.yang.model.parser.builder.api.SchemaNodeBuilder;
-public class IdentitySchemaNodeBuilder implements SchemaNodeBuilder {
-
+public final class IdentitySchemaNodeBuilder implements SchemaNodeBuilder {
+ private final IdentitySchemaNodeImpl instance;
private final QName qname;
private SchemaPath schemaPath;
private final QName qname;
private SchemaPath schemaPath;
- private final IdentitySchemaNodeImpl instance;
private IdentitySchemaNodeBuilder baseIdentity;
private String baseIdentityName;
private IdentitySchemaNodeBuilder baseIdentity;
private String baseIdentityName;
+ private final List<UnknownSchemaNodeBuilder> addedUnknownNodes = new ArrayList<UnknownSchemaNodeBuilder>();
IdentitySchemaNodeBuilder(final QName qname) {
this.qname = qname;
IdentitySchemaNodeBuilder(final QName qname) {
this.qname = qname;
@Override
public IdentitySchemaNode build() {
instance.setPath(schemaPath);
@Override
public IdentitySchemaNode build() {
instance.setPath(schemaPath);
if (baseIdentity != null) {
if (baseIdentity != null) {
- final IdentitySchemaNode base = baseIdentity.build();
- instance.setBaseIdentity(base);
+ instance.setBaseIdentity(baseIdentity.build());
+ }
+
+ // UNKNOWN NODES
+ final List<UnknownSchemaNode> unknownNodes = new ArrayList<UnknownSchemaNode>();
+ for (UnknownSchemaNodeBuilder b : addedUnknownNodes) {
+ unknownNodes.add(b.build());
+ instance.setUnknownSchemaNodes(unknownNodes);
+
@Override
public void addUnknownSchemaNode(final UnknownSchemaNodeBuilder unknownNode) {
@Override
public void addUnknownSchemaNode(final UnknownSchemaNodeBuilder unknownNode) {
- throw new IllegalStateException(
- "Can not add schema node to identity statement");
+ addedUnknownNodes.add(unknownNode);
}
public String getBaseIdentityName() {
}
public String getBaseIdentityName() {
this.baseIdentity = baseType;
}
this.baseIdentity = baseType;
}
- private class IdentitySchemaNodeImpl implements IdentitySchemaNode {
+ private final class IdentitySchemaNodeImpl implements IdentitySchemaNode {
private final QName qname;
private IdentitySchemaNode baseIdentity;
private String description;
private String reference;
private Status status = Status.CURRENT;
private SchemaPath path;
private final QName qname;
private IdentitySchemaNode baseIdentity;
private String description;
private String reference;
private Status status = Status.CURRENT;
private SchemaPath path;
+ private List<UnknownSchemaNode> unknownNodes = Collections.emptyList();
private IdentitySchemaNodeImpl(final QName qname) {
this.qname = qname;
private IdentitySchemaNodeImpl(final QName qname) {
this.qname = qname;
@Override
public List<UnknownSchemaNode> getUnknownSchemaNodes() {
@Override
public List<UnknownSchemaNode> getUnknownSchemaNodes() {
- return Collections.emptyList();
+ return unknownNodes;
+ }
+
+ private void setUnknownSchemaNodes(
+ List<UnknownSchemaNode> unknownSchemaNodes) {
+ if (unknownSchemaNodes != null) {
+ this.unknownNodes = unknownSchemaNodes;
+ }
*/
@Override
public Module build() {
*/
@Override
public Module build() {
+ instance.setPrefix(prefix);
+ instance.setRevision(revision);
instance.setImports(imports);
instance.setNamespace(namespace);
instance.setImports(imports);
instance.setNamespace(namespace);
public void setRevision(final Date revision) {
this.revision = revision;
public void setRevision(final Date revision) {
this.revision = revision;
- instance.setRevision(revision);
}
public void setPrefix(final String prefix) {
this.prefix = prefix;
}
public void setPrefix(final String prefix) {
this.prefix = prefix;
- instance.setPrefix(prefix);
}
public void setYangVersion(final String yangVersion) {
}
public void setYangVersion(final String yangVersion) {
public ContainerSchemaNodeBuilder addContainerNode(
final QName containerName, final List<String> parentPath) {
final List<String> pathToNode = new ArrayList<String>(parentPath);
public ContainerSchemaNodeBuilder addContainerNode(
final QName containerName, final List<String> parentPath) {
final List<String> pathToNode = new ArrayList<String>(parentPath);
final ContainerSchemaNodeBuilder containerBuilder = new ContainerSchemaNodeBuilder(
containerName);
final ContainerSchemaNodeBuilder containerBuilder = new ContainerSchemaNodeBuilder(
containerName);
final ChildNodeBuilder parent = (ChildNodeBuilder) moduleNodes
.get(pathToNode);
if (parent != null) {
final ChildNodeBuilder parent = (ChildNodeBuilder) moduleNodes
.get(pathToNode);
if (parent != null) {
public ListSchemaNodeBuilder addListNode(final QName listName,
final List<String> parentPath) {
final List<String> pathToNode = new ArrayList<String>(parentPath);
public ListSchemaNodeBuilder addListNode(final QName listName,
final List<String> parentPath) {
final List<String> pathToNode = new ArrayList<String>(parentPath);
final ListSchemaNodeBuilder listBuilder = new ListSchemaNodeBuilder(
listName);
final ListSchemaNodeBuilder listBuilder = new ListSchemaNodeBuilder(
listName);
final ChildNodeBuilder parent = (ChildNodeBuilder) moduleNodes
.get(pathToNode);
if (parent != null) {
final ChildNodeBuilder parent = (ChildNodeBuilder) moduleNodes
.get(pathToNode);
if (parent != null) {
public LeafSchemaNodeBuilder addLeafNode(final QName leafName,
final List<String> parentPath) {
final List<String> pathToNode = new ArrayList<String>(parentPath);
public LeafSchemaNodeBuilder addLeafNode(final QName leafName,
final List<String> parentPath) {
final List<String> pathToNode = new ArrayList<String>(parentPath);
final LeafSchemaNodeBuilder leafBuilder = new LeafSchemaNodeBuilder(
leafName);
final LeafSchemaNodeBuilder leafBuilder = new LeafSchemaNodeBuilder(
leafName);
final ChildNodeBuilder parent = (ChildNodeBuilder) moduleNodes
.get(pathToNode);
if (parent != null) {
final ChildNodeBuilder parent = (ChildNodeBuilder) moduleNodes
.get(pathToNode);
if (parent != null) {
public LeafListSchemaNodeBuilder addLeafListNode(final QName leafListName,
final List<String> parentPath) {
final List<String> pathToNode = new ArrayList<String>(parentPath);
public LeafListSchemaNodeBuilder addLeafListNode(final QName leafListName,
final List<String> parentPath) {
final List<String> pathToNode = new ArrayList<String>(parentPath);
final LeafListSchemaNodeBuilder leafListBuilder = new LeafListSchemaNodeBuilder(
leafListName);
final ChildNodeBuilder parent = (ChildNodeBuilder) moduleNodes
final LeafListSchemaNodeBuilder leafListBuilder = new LeafListSchemaNodeBuilder(
leafListName);
final ChildNodeBuilder parent = (ChildNodeBuilder) moduleNodes
public GroupingBuilder addGrouping(final QName qname,
final List<String> parentPath) {
final List<String> pathToGroup = new ArrayList<String>(parentPath);
public GroupingBuilder addGrouping(final QName qname,
final List<String> parentPath) {
final List<String> pathToGroup = new ArrayList<String>(parentPath);
final GroupingBuilder builder = new GroupingBuilderImpl(qname);
final ChildNodeBuilder parentNodeBuilder = (ChildNodeBuilder) moduleNodes
.get(pathToGroup);
final GroupingBuilder builder = new GroupingBuilderImpl(qname);
final ChildNodeBuilder parentNodeBuilder = (ChildNodeBuilder) moduleNodes
.get(pathToGroup);
public AugmentationSchemaBuilder addAugment(final String name,
final List<String> parentPath) {
final List<String> pathToAugment = new ArrayList<String>(parentPath);
public AugmentationSchemaBuilder addAugment(final String name,
final List<String> parentPath) {
final List<String> pathToAugment = new ArrayList<String>(parentPath);
final AugmentationSchemaBuilder builder = new AugmentationSchemaBuilderImpl(
name);
final AugmentationSchemaBuilder builder = new AugmentationSchemaBuilderImpl(
name);
import org.opendaylight.controller.yang.model.parser.builder.api.UsesNodeBuilder;\r
import org.opendaylight.controller.yang.model.parser.util.RefineHolder;\r
\r
import org.opendaylight.controller.yang.model.parser.builder.api.UsesNodeBuilder;\r
import org.opendaylight.controller.yang.model.parser.util.RefineHolder;\r
\r
-public class UsesNodeBuilderImpl implements UsesNodeBuilder, Builder {\r
-\r
+final class UsesNodeBuilderImpl implements UsesNodeBuilder, Builder {\r
private final UsesNodeImpl instance;\r
private final SchemaPath groupingPath;\r
private final Set<AugmentationSchemaBuilder> addedAugments = new HashSet<AugmentationSchemaBuilder>();\r
private final UsesNodeImpl instance;\r
private final SchemaPath groupingPath;\r
private final Set<AugmentationSchemaBuilder> addedAugments = new HashSet<AugmentationSchemaBuilder>();\r
refines.add(refine);\r
}\r
\r
refines.add(refine);\r
}\r
\r
- private SchemaPath parseUsesPath(final String augmentPath) {\r
- final String[] splittedPath = augmentPath.split("/");\r
+ private SchemaPath parseUsesPath(final String groupingPathStr) {\r
+ final String[] splittedPath = groupingPathStr.split("/");\r
final List<QName> path = new ArrayList<QName>();\r
QName name;\r
for (String pathElement : splittedPath) {\r
final List<QName> path = new ArrayList<QName>();\r
QName name;\r
for (String pathElement : splittedPath) {\r
}\r
path.add(name);\r
}\r
}\r
path.add(name);\r
}\r
- final boolean absolute = augmentPath.startsWith("/");\r
+ final boolean absolute = groupingPathStr.startsWith("/");\r
return new SchemaPath(path, absolute);\r
}\r
\r
return new SchemaPath(path, absolute);\r
}\r
\r
- private static class UsesNodeImpl implements UsesNode {\r
+ private final class UsesNodeImpl implements UsesNode {\r
private final SchemaPath groupingPath;\r
private Set<AugmentationSchema> augmentations = Collections.emptySet();\r
private boolean augmenting;\r
private final SchemaPath groupingPath;\r
private Set<AugmentationSchema> augmentations = Collections.emptySet();\r
private boolean augmenting;\r
final String nodeTypeStr = ctx.getChild(0).getText();
final String[] splittedElement = nodeTypeStr.split(":");
if (splittedElement.length == 1) {
final String nodeTypeStr = ctx.getChild(0).getText();
final String[] splittedElement = nodeTypeStr.split(":");
if (splittedElement.length == 1) {
- nodeType = new QName(null, null, null, splittedElement[0]);
+ nodeType = new QName(null, null, yangModelPrefix, splittedElement[0]);
} else {
nodeType = new QName(null, null, splittedElement[0],
splittedElement[1]);
} else {
nodeType = new QName(null, null, splittedElement[0],
splittedElement[1]);
import org.opendaylight.controller.yang.model.api.IdentitySchemaNode;
import org.opendaylight.controller.yang.model.api.LeafSchemaNode;
import org.opendaylight.controller.yang.model.api.Module;
import org.opendaylight.controller.yang.model.api.IdentitySchemaNode;
import org.opendaylight.controller.yang.model.api.LeafSchemaNode;
import org.opendaylight.controller.yang.model.api.Module;
-import org.opendaylight.controller.yang.model.api.Status;
import org.opendaylight.controller.yang.model.api.TypeDefinition;
import org.opendaylight.controller.yang.model.api.type.BitsTypeDefinition.Bit;
import org.opendaylight.controller.yang.model.api.type.EnumTypeDefinition.EnumPair;
import org.opendaylight.controller.yang.model.api.TypeDefinition;
import org.opendaylight.controller.yang.model.api.type.BitsTypeDefinition.Bit;
import org.opendaylight.controller.yang.model.api.type.EnumTypeDefinition.EnumPair;