public class CopyUtils {
+ /**
+ * Create copy of DataSchemaNodeBuilder with new parent. If updateQName is
+ * true, qname of node will be corrected based on new parent.
+ *
+ * @param old
+ * @param newParent
+ * @param updateQName
+ * @return
+ */
public static DataSchemaNodeBuilder copy(DataSchemaNodeBuilder old, Builder newParent, boolean updateQName) {
if (old instanceof AnyXmlBuilder) {
return copy((AnyXmlBuilder) old, newParent, updateQName);
} else if (old instanceof ChoiceCaseBuilder) {
return copy((ChoiceCaseBuilder) old, newParent, updateQName);
} else {
- throw new YangParseException(old.getModuleName(), old.getLine(), "Failed to copy node " + old);
+ throw new YangParseException(old.getModuleName(), old.getLine(),
+ "Failed to copy node: Unknown type of DataSchemaNode: " + old);
}
}
c.setAugmenting(old.isAugmenting());
c.setAddedByUses(old.isAddedByUses());
c.setConfiguration(old.isConfiguration());
- // TODO: built un?
for (UnknownSchemaNodeBuilder un : old.getUnknownNodeBuilders()) {
c.addUnknownNodeBuilder((copy(un, c, updateQName)));
}
c.setAugmenting(old.isAugmenting());
c.setAddedByUses(old.isAddedByUses());
c.setConfiguration(old.isConfiguration());
- // TODO: built child nodes?
for (ChoiceCaseBuilder childNode : old.getCases()) {
c.addCase(copy(childNode, c, updateQName));
}
- // TODO: built augments?
for (AugmentationSchemaBuilder augment : old.getAugmentations()) {
c.addAugmentation(copyAugment(augment, c));
}
- // TODO: built un?
for (UnknownSchemaNodeBuilder un : old.getUnknownNodeBuilders()) {
c.addUnknownNodeBuilder((copy(un, c, updateQName)));
}
c.setReference(old.getReference());
c.setStatus(old.getStatus());
c.setAugmenting(old.isAugmenting());
- // TODO: built child nodes?
+ c.getChildNodes().addAll(old.getChildNodes());
for (DataSchemaNodeBuilder childNode : old.getChildNodeBuilders()) {
c.addChildNode(copy(childNode, c, updateQName));
}
- // TODO: built groupings?
- // TODO: copy groupings?
c.getGroupings().addAll(old.getGroupings());
- // TODO: build typedefs?
+ for (GroupingBuilder grouping : old.getGroupingBuilders()) {
+ c.addGrouping(copy(grouping, c, updateQName));
+ }
for (TypeDefinitionBuilder tdb : old.getTypeDefinitionBuilders()) {
c.addTypedef(copy(tdb, c, updateQName));
}
- // TODO: built uses?
for (UsesNodeBuilder oldUses : old.getUsesNodes()) {
c.addUsesNode(copyUses(oldUses, c));
}
- // TODO: built un?
for (UnknownSchemaNodeBuilder un : old.getUnknownNodeBuilders()) {
c.addUnknownNodeBuilder((copy(un, c, updateQName)));
}
c.setAugmenting(old.isAugmenting());
c.setAddedByUses(old.isAddedByUses());
c.setConfiguration(old.isConfiguration());
- // TODO: built child nodes?
+ c.setChildNodes(old.getChildNodes());
for (DataSchemaNodeBuilder childNode : old.getChildNodeBuilders()) {
c.addChildNode(copy(childNode, c, updateQName));
}
- // TODO: built groupings?
+ c.getGroupings().addAll(old.getGroupings());
for (GroupingBuilder grouping : old.getGroupingBuilders()) {
c.addGrouping(copy(grouping, c, updateQName));
}
-
- // TODO: build typedefs?
for (TypeDefinitionBuilder tdb : old.getTypeDefinitionBuilders()) {
c.addTypedef(copy(tdb, c, updateQName));
}
- // TODO: built uses?
for (UsesNodeBuilder oldUses : old.getUsesNodes()) {
c.addUsesNode(copyUses(oldUses, c));
}
- // TODO: built augments?
for (AugmentationSchemaBuilder augment : old.getAugmentations()) {
c.addAugmentation(copyAugment(augment, c));
}
- // TODO: built un?
for (UnknownSchemaNodeBuilder un : old.getUnknownNodeBuilders()) {
c.addUnknownNodeBuilder((copy(un, c, updateQName)));
}
c.setAugmenting(old.isAugmenting());
c.setAddedByUses(old.isAddedByUses());
c.setConfiguration(old.isConfiguration());
- // TODO: built un?
for (UnknownSchemaNodeBuilder un : old.getUnknownNodeBuilders()) {
c.addUnknownNodeBuilder((copy(un, c, updateQName)));
}
c.setAugmenting(old.isAugmenting());
c.setAddedByUses(old.isAddedByUses());
c.setConfiguration(old.isConfiguration());
- // TODO: built un?
for (UnknownSchemaNodeBuilder un : old.getUnknownNodeBuilders()) {
c.addUnknownNodeBuilder((copy(un, c, updateQName)));
}
c.setAugmenting(old.isAugmenting());
c.setAddedByUses(old.isAddedByUses());
c.setConfiguration(old.isConfiguration());
- // TODO: built child nodes?
+ c.setChildNodes(old.getChildNodes());
for (DataSchemaNodeBuilder childNode : old.getChildNodeBuilders()) {
c.addChildNode(copy(childNode, c, updateQName));
}
- // TODO: built groupings?
+ c.getGroupings().addAll(old.getGroupings());
for (GroupingBuilder grouping : old.getGroupingBuilders()) {
c.addGrouping(copy(grouping, c, updateQName));
}
-
- // TODO: build typedefs?
for (TypeDefinitionBuilder tdb : old.getTypeDefinitionBuilders()) {
c.addTypedef(copy(tdb, c, updateQName));
}
- // TODO: built uses?
for (UsesNodeBuilder oldUses : old.getUsesNodes()) {
c.addUsesNode(copyUses(oldUses, c));
}
- // TODO: built augments?
for (AugmentationSchemaBuilder augment : old.getAugmentations()) {
c.addAugmentation(copyAugment(augment, c));
}
- // TODO: built un?
for (UnknownSchemaNodeBuilder un : old.getUnknownNodeBuilders()) {
c.addUnknownNodeBuilder((copy(un, c, updateQName)));
}
return c;
}
- public static GroupingBuilder copy(GroupingBuilder old, Builder newParent, boolean updateQName) {
+ static GroupingBuilder copy(GroupingBuilder old, Builder newParent, boolean updateQName) {
DataBean data = getdata(old, newParent, updateQName);
QName newQName = data.qname;
SchemaPath newSchemaPath = data.schemaPath;
- GroupingBuilder c = new GroupingBuilderImpl(newParent.getModuleName(), newParent.getLine(), newQName);
+ GroupingBuilderImpl c = new GroupingBuilderImpl(newParent.getModuleName(), newParent.getLine(), newQName);
c.setParent(newParent);
c.setPath(newSchemaPath);
c.setDescription(old.getDescription());
c.setReference(old.getReference());
c.setStatus(old.getStatus());
c.setAddedByUses(old.isAddedByUses());
- // TODO: built child nodes?
+ c.setChildNodes(old.getChildNodes());
for (DataSchemaNodeBuilder childNode : old.getChildNodeBuilders()) {
c.addChildNode(copy(childNode, c, updateQName));
}
- // TODO: built groupings?
+ c.getGroupings().addAll(old.getGroupings());
for (GroupingBuilder grouping : old.getGroupingBuilders()) {
c.addGrouping(copy(grouping, c, updateQName));
}
-
- // TODO: build typedefs?
for (TypeDefinitionBuilder tdb : old.getTypeDefinitionBuilders()) {
c.addTypedef(copy(tdb, c, updateQName));
}
- // TODO: built uses?
for (UsesNodeBuilder oldUses : old.getUsesNodes()) {
c.addUsesNode(copyUses(oldUses, c));
}
- // TODO: built un?
for (UnknownSchemaNodeBuilder un : old.getUnknownNodeBuilders()) {
c.addUnknownNodeBuilder((copy(un, c, updateQName)));
}
return c;
}
- public static TypeDefinitionBuilder copy(TypeDefinitionBuilder old, Builder newParent, boolean updateQName) {
+ static TypeDefinitionBuilder copy(TypeDefinitionBuilder old, Builder newParent, boolean updateQName) {
DataBean data = getdata(old, newParent, updateQName);
QName newQName = data.qname;
SchemaPath newSchemaPath = data.schemaPath;
return newConstraints;
}
- public static UsesNodeBuilder copyUses(UsesNodeBuilder old, Builder newParent) {
+ static UsesNodeBuilder copyUses(UsesNodeBuilder old, Builder newParent) {
UsesNodeBuilder u = new UsesNodeBuilderImpl(newParent.getModuleName(), newParent.getLine(),
old.getGroupingName());
u.setParent(newParent);
}
u.setTargetUnknownNodes(newUN);
- // u.getTargetGroupingUses().addAll(old.getTargetGroupingUses());
for (UsesNodeBuilder uses : old.getTargetGroupingUses()) {
u.getTargetGroupingUses().add(copyUses(uses, uses.getParent()));
}
}
private static AugmentationSchemaBuilder copyAugment(AugmentationSchemaBuilder old, Builder newParent) {
- AugmentationSchemaBuilder a = new AugmentationSchemaBuilderImpl(newParent.getModuleName(), newParent.getLine(),
- old.getTargetPathAsString());
+ AugmentationSchemaBuilderImpl a = new AugmentationSchemaBuilderImpl(newParent.getModuleName(),
+ newParent.getLine(), old.getTargetPathAsString());
a.setParent(newParent);
a.setDescription(old.getDescription());
a.setReference(old.getReference());
a.setStatus(old.getStatus());
a.addWhenCondition(old.getWhenCondition());
- // TODO: built child nodes?
+ a.setChildNodes(old.getChildNodes());
for (DataSchemaNodeBuilder childNode : old.getChildNodeBuilders()) {
a.addChildNode(copy(childNode, a, false));
}
- // TODO: built uses?
for (UsesNodeBuilder oldUses : old.getUsesNodes()) {
a.addUsesNode(copyUses(oldUses, a));
}
- // TODO: built un?
for (UnknownSchemaNodeBuilder un : old.getUnknownNodeBuilders()) {
a.addUnknownNodeBuilder((copy(un, a, false)));
}
return a;
}
- public static UnknownSchemaNodeBuilder copy(UnknownSchemaNodeBuilder old, Builder newParent, boolean updateQName) {
+ static UnknownSchemaNodeBuilder copy(UnknownSchemaNodeBuilder old, Builder newParent, boolean updateQName) {
DataBean data = getdata(old, newParent, updateQName);
QName newQName = data.qname;
SchemaPath newSchemaPath = data.schemaPath;
c.setReference(old.getReference());
c.setStatus(old.getStatus());
c.setAddedByUses(old.isAddedByUses());
-
- // TODO: built un?
for (UnknownSchemaNodeBuilder un : old.getUnknownNodeBuilders()) {
c.addUnknownNodeBuilder((copy(un, c, updateQName)));
}
newPath = Collections.singletonList(newQName);
}
} else if (newParent instanceof AugmentationSchemaBuilder) {
- // TODO: new parent is augment?
ModuleBuilder parent = ParserUtils.getParentModule(newParent);
if (updateQName) {
newQName = new QName(parent.getNamespace(), parent.getRevision(), parent.getPrefix(), old.getQName()
SchemaNodeBuilder parent = (SchemaNodeBuilder) newParent;
QName parentQName = parent.getQName();
if (updateQName) {
- if (parentQName == null) {
- System.out.println("NULL");
- }
- if (old == null) {
- System.out.println("2NULL");
- }
newQName = new QName(parentQName.getNamespace(), parentQName.getRevision(), parentQName.getPrefix(),
old.getQName().getLocalName());
newPath = new ArrayList<>(parent.getPath().getPath());
import static org.junit.Assert.*;
+import java.io.FileNotFoundException;
+import java.net.URI;
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
import java.util.Set;
+import org.junit.Before;
import org.junit.Test;
+import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.ChoiceNode;
import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
+import org.opendaylight.yangtools.yang.model.api.SchemaPath;
public class UsesAugmentTest {
+ private final URI ns = URI.create("urn:opendaylight:params:xml:ns:yang:uses-grouping");
+ private Date rev;
+ private final String prefix = "ug";
+
private Set<Module> modules;
+ @Before
+ public void init() throws FileNotFoundException, ParseException {
+ rev = TestUtils.simpleDateFormat.parse("2013-07-30");
+ }
+
+
/**
* Structure of testing model:
*
assertEquals(1, notifications.size());
NotificationDefinition pcreq = notifications.iterator().next();
assertNotNull(pcreq);
+ assertEquals(createPath("pcreq"), pcreq.getPath());
Set<DataSchemaNode> childNodes = pcreq.getChildNodes();
assertEquals(3, childNodes.size());
// * |-- leaf version (U)
LeafSchemaNode version = (LeafSchemaNode)pcreq.getDataChildByName("version");
assertNotNull(version);
+ assertEquals(createPath("pcreq", "version"), version.getPath());
assertTrue(version.isAddedByUses());
// * |-- list requests
ListSchemaNode requests = (ListSchemaNode)pcreq.getDataChildByName("requests");
assertNotNull(requests);
+ assertEquals(createPath("pcreq", "requests"), requests.getPath());
assertFalse(requests.isAddedByUses());
childNodes = requests.getChildNodes();
assertEquals(3, childNodes.size());
// * |-- |-- container rp
ContainerSchemaNode rp = (ContainerSchemaNode)requests.getDataChildByName("rp");
assertNotNull(rp);
+ assertEquals(createPath("pcreq", "requests", "rp"), rp.getPath());
assertFalse(rp.isAddedByUses());
childNodes = rp.getChildNodes();
assertEquals(4, childNodes.size());
// * |-- |-- |-- leaf priority (U)
LeafSchemaNode priority = (LeafSchemaNode)rp.getDataChildByName("priority");
assertNotNull(priority);
+ assertEquals(createPath("pcreq", "requests", "rp", "priority"), priority.getPath());
assertTrue(priority.isAddedByUses());
// * |-- |-- |-- container box (U)
ContainerSchemaNode box = (ContainerSchemaNode)rp.getDataChildByName("box");
assertNotNull(box);
+ assertEquals(createPath("pcreq", "requests", "rp", "box"), box.getPath());
assertTrue(box.isAddedByUses());
// * |-- |-- |-- |-- container order (A)
ContainerSchemaNode order = (ContainerSchemaNode)box.getDataChildByName("order");
assertNotNull(order);
- //assertFalse(order.isAddedByUses());
+ assertEquals(createPath("pcreq", "requests", "rp", "box", "order"), order.getPath());
+ assertFalse(order.isAddedByUses());
assertTrue(order.isAugmenting());
assertEquals(2, order.getChildNodes().size());
// * |-- |-- |-- |-- |-- leaf processing-rule (U)
LeafSchemaNode delete = (LeafSchemaNode)order.getDataChildByName("delete");
assertNotNull(delete);
+ assertEquals(createPath("pcreq", "requests", "rp", "box", "order", "delete"), delete.getPath());
assertTrue(delete.isAddedByUses());
// * |-- |-- |-- |-- |-- leaf ignore (U)
LeafSchemaNode setup = (LeafSchemaNode)order.getDataChildByName("setup");
assertNotNull(setup);
+ assertEquals(createPath("pcreq", "requests", "rp", "box", "order", "setup"), setup.getPath());
assertTrue(setup.isAddedByUses());
// * |-- |-- |-- leaf processing-rule (U)
LeafSchemaNode processingRule = (LeafSchemaNode)rp.getDataChildByName("processing-rule");
assertNotNull(processingRule);
+ assertEquals(createPath("pcreq", "requests", "rp", "processing-rule"), processingRule.getPath());
assertTrue(processingRule.isAddedByUses());
// * |-- |-- |-- leaf ignore (U)
LeafSchemaNode ignore = (LeafSchemaNode)rp.getDataChildByName("ignore");
assertNotNull(ignore);
+ assertEquals(createPath("pcreq", "requests", "rp", "ignore"), ignore.getPath());
assertTrue(ignore.isAddedByUses());
// * |-- |-- path-key-expansion
ContainerSchemaNode pke = (ContainerSchemaNode)requests.getDataChildByName("path-key-expansion");
assertNotNull(pke);
+ assertEquals(createPath("pcreq", "requests", "path-key-expansion"), pke.getPath());
assertFalse(pke.isAddedByUses());
// * |-- |-- |-- path-key
ContainerSchemaNode pathKey = (ContainerSchemaNode)pke.getDataChildByName("path-key");
assertNotNull(pathKey);
+ assertEquals(createPath("pcreq", "requests", "path-key-expansion", "path-key"), pathKey.getPath());
assertFalse(pathKey.isAddedByUses());
assertEquals(3, pathKey.getChildNodes().size());
// * |-- |-- |-- |-- list path-keys (U)
ListSchemaNode pathKeys = (ListSchemaNode)pathKey.getDataChildByName("path-keys");
assertNotNull(pathKeys);
+ assertEquals(createPath("pcreq", "requests", "path-key-expansion", "path-key", "path-keys"), pathKeys.getPath());
assertTrue(pathKeys.isAddedByUses());
childNodes = pathKeys.getChildNodes();
assertEquals(1, childNodes.size());
// * |-- |-- |-- |-- |-- leaf version (U)
version = (LeafSchemaNode)pathKeys.getDataChildByName("version");
assertNotNull(version);
+ assertEquals(createPath("pcreq", "requests", "path-key-expansion", "path-key", "path-keys", "version"), version.getPath());
assertTrue(version.isAddedByUses());
assertFalse(version.isAugmenting());
// * |-- |-- |-- |-- |-- leaf processing-rule (U)
processingRule = (LeafSchemaNode)pathKey.getDataChildByName("processing-rule");
assertNotNull(processingRule);
+ assertEquals(createPath("pcreq", "requests", "path-key-expansion", "path-key", "processing-rule"), processingRule.getPath());
assertTrue(processingRule.isAddedByUses());
// * |-- |-- |-- |-- |-- leaf ignore (U)
ignore = (LeafSchemaNode)pathKey.getDataChildByName("ignore");
assertNotNull(ignore);
+ assertEquals(createPath("pcreq", "requests", "path-key-expansion", "path-key", "ignore"), ignore.getPath());
assertTrue(ignore.isAddedByUses());
// * |-- |-- container segment-computation
ContainerSchemaNode sc = (ContainerSchemaNode)requests.getDataChildByName("segment-computation");
assertNotNull(sc);
+ assertEquals(createPath("pcreq", "requests", "segment-computation"), sc.getPath());
assertFalse(sc.isAddedByUses());
// * |-- |-- |-- container p2p
ContainerSchemaNode p2p = (ContainerSchemaNode)sc.getDataChildByName("p2p");
assertNotNull(p2p);
+ assertEquals(createPath("pcreq", "requests", "segment-computation", "p2p"), p2p.getPath());
assertFalse(p2p.isAddedByUses());
// * |-- |-- |-- |-- container endpoints
ContainerSchemaNode endpoints = (ContainerSchemaNode)p2p.getDataChildByName("endpoints");
assertNotNull(endpoints);
+ assertEquals(createPath("pcreq", "requests", "segment-computation", "p2p", "endpoints"), endpoints.getPath());
assertFalse(endpoints.isAddedByUses());
// * |-- |-- |-- |-- |-- leaf processing-rule (U)
processingRule = (LeafSchemaNode)endpoints.getDataChildByName("processing-rule");
assertNotNull(processingRule);
+ assertEquals(createPath("pcreq", "requests", "segment-computation", "p2p", "endpoints", "processing-rule"), processingRule.getPath());
assertTrue(processingRule.isAddedByUses());
// * |-- |-- |-- |-- |-- leaf ignore (U)
ignore = (LeafSchemaNode)endpoints.getDataChildByName("ignore");
assertNotNull(ignore);
+ assertEquals(createPath("pcreq", "requests", "segment-computation", "p2p", "endpoints", "ignore"), ignore.getPath());
assertTrue(ignore.isAddedByUses());
// * |-- |-- |-- |-- |-- container box
box = (ContainerSchemaNode)endpoints.getDataChildByName("box");
assertNotNull(box);
+ assertEquals(createPath("pcreq", "requests", "segment-computation", "p2p", "endpoints", "box"), box.getPath());
assertTrue(box.isAddedByUses());
// * |-- |-- |-- |-- |-- choice address-family (U)
ChoiceNode af = (ChoiceNode)endpoints.getDataChildByName("address-family");
assertNotNull(af);
+ assertEquals(createPath("pcreq", "requests", "segment-computation", "p2p", "endpoints", "address-family"), af.getPath());
assertTrue(af.isAddedByUses());
// * |-- |-- |-- |-- container reported-route
ContainerSchemaNode reportedRoute = (ContainerSchemaNode)p2p.getDataChildByName("reported-route");
assertNotNull(reportedRoute);
+ assertEquals(createPath("pcreq", "requests", "segment-computation", "p2p", "reported-route"), reportedRoute.getPath());
assertFalse(reportedRoute.isAddedByUses());
// * |-- |-- |-- |-- |-- container bandwidth
ContainerSchemaNode bandwidth = (ContainerSchemaNode)reportedRoute.getDataChildByName("bandwidth");
assertNotNull(bandwidth);
+ assertEquals(createPath("pcreq", "requests", "segment-computation", "p2p", "reported-route", "bandwidth"), bandwidth.getPath());
assertFalse(bandwidth.isAddedByUses());
// * |-- |-- |-- |-- |-- list subobjects
ListSchemaNode subobjects = (ListSchemaNode)reportedRoute.getDataChildByName("subobjects");
assertNotNull(subobjects);
+ assertEquals(createPath("pcreq", "requests", "segment-computation", "p2p", "reported-route", "subobjects"), subobjects.getPath());
assertTrue(subobjects.isAddedByUses());
// * |-- |-- |-- |-- |-- leaf processing-rule (U)
processingRule = (LeafSchemaNode)reportedRoute.getDataChildByName("processing-rule");
assertNotNull(processingRule);
+ assertEquals(createPath("pcreq", "requests", "segment-computation", "p2p", "reported-route", "processing-rule"), processingRule.getPath());
assertTrue(processingRule.isAddedByUses());
// * |-- |-- |-- |-- |-- leaf ignore (U)
ignore = (LeafSchemaNode)reportedRoute.getDataChildByName("ignore");
assertNotNull(ignore);
+ assertEquals(createPath("pcreq", "requests", "segment-computation", "p2p", "reported-route", "ignore"), ignore.getPath());
assertTrue(ignore.isAddedByUses());
// * |-- |-- |-- |-- container bandwidth (U)
bandwidth = (ContainerSchemaNode)p2p.getDataChildByName("bandwidth");
assertNotNull(bandwidth);
+ assertEquals(createPath("pcreq", "requests", "segment-computation", "p2p", "bandwidth"), bandwidth.getPath());
assertTrue(bandwidth.isAddedByUses());
// * |-- |-- |-- |-- |-- container bandwidth (U)
- bandwidth = (ContainerSchemaNode)bandwidth.getDataChildByName("bandwidth");
- assertNotNull(bandwidth);
- assertTrue(bandwidth.isAddedByUses());
-
-
+ ContainerSchemaNode bandwidthInner = (ContainerSchemaNode)bandwidth.getDataChildByName("bandwidth");
+ assertNotNull(bandwidthInner);
+ assertEquals(createPath("pcreq", "requests", "segment-computation", "p2p", "bandwidth", "bandwidth"), bandwidthInner.getPath());
+ assertTrue(bandwidthInner.isAddedByUses());
+ // * |-- |-- |-- |-- |-- leaf processing-rule (U)
+ processingRule = (LeafSchemaNode)bandwidth.getDataChildByName("processing-rule");
+ assertNotNull(processingRule);
+ assertEquals(createPath("pcreq", "requests", "segment-computation", "p2p", "bandwidth", "processing-rule"), processingRule.getPath());
+ assertTrue(processingRule.isAddedByUses());
+ // * |-- |-- |-- |-- |-- leaf ignore (U)
+ ignore = (LeafSchemaNode)bandwidth.getDataChildByName("ignore");
+ assertNotNull(ignore);
+ assertEquals(createPath("pcreq", "requests", "segment-computation", "p2p", "bandwidth", "ignore"), ignore.getPath());
+ assertTrue(ignore.isAddedByUses());
// * |-- list svec
ListSchemaNode svec = (ListSchemaNode)pcreq.getDataChildByName("svec");
assertNotNull(svec);
+ assertEquals(createPath("pcreq", "svec"), svec.getPath());
assertFalse(svec.isAddedByUses());
+ // * |-- |-- list metric
+ ListSchemaNode metric = (ListSchemaNode)svec.getDataChildByName("metric");
+ assertNotNull(metric);
+ assertEquals(createPath("pcreq", "svec", "metric"), metric.getPath());
+ assertFalse(metric.isAddedByUses());
+ // * |-- |-- |-- leaf metric-type (U)
+ LeafSchemaNode metricType = (LeafSchemaNode)metric.getDataChildByName("metric-type");
+ assertNotNull(metricType);
+ assertEquals(createPath("pcreq", "svec", "metric", "metric-type"), metricType.getPath());
+ assertTrue(metricType.isAddedByUses());
+ // * |-- |-- |-- box (U)
+ box = (ContainerSchemaNode)metric.getDataChildByName("box");
+ assertNotNull(box);
+ assertEquals(createPath("pcreq", "svec", "metric", "box"), box.getPath());
+ assertTrue(box.isAddedByUses());
+ // * |-- |-- |-- leaf processing-rule (U)
+ processingRule = (LeafSchemaNode)metric.getDataChildByName("processing-rule");
+ assertNotNull(processingRule);
+ assertEquals(createPath("pcreq", "svec", "metric", "processing-rule"), processingRule.getPath());
+ assertTrue(processingRule.isAddedByUses());
+ // * |-- |-- |-- leaf ignore (U)
+ ignore = (LeafSchemaNode)metric.getDataChildByName("ignore");
+ assertNotNull(ignore);
+ assertEquals(createPath("pcreq", "svec", "metric", "ignore"), ignore.getPath());
+ assertTrue(ignore.isAddedByUses());
+ // * |-- |-- leaf link-diverse (U)
+ LeafSchemaNode linkDiverse = (LeafSchemaNode)svec.getDataChildByName("link-diverse");
+ assertNotNull(linkDiverse);
+ assertEquals(createPath("pcreq", "svec", "link-diverse"), linkDiverse.getPath());
+ assertTrue(linkDiverse.isAddedByUses());
+ // * |-- |-- leaf processing-rule (U)
+ processingRule = (LeafSchemaNode)svec.getDataChildByName("processing-rule");
+ assertNotNull(processingRule);
+ assertEquals(createPath("pcreq", "svec", "processing-rule"), processingRule.getPath());
+ assertTrue(processingRule.isAddedByUses());
+ // * |-- |-- leaf ignore (U)
+ ignore = (LeafSchemaNode)svec.getDataChildByName("ignore");
+ assertNotNull(ignore);
+ assertEquals(createPath("pcreq", "svec", "ignore"), ignore.getPath());
+ assertTrue(ignore.isAddedByUses());
+ }
+
+ private SchemaPath createPath(String... names) {
+ List<QName> path = new ArrayList<>();
+ for(String name : names) {
+ path.add(new QName(ns, rev, prefix, name));
+ }
+ return new SchemaPath(path, true);
}
}