[ONOS-7299]YANG Runtime and Serializer: LeafType handling
Change-Id: I83e007975165fbf7e9e5e6377a268078a2ce47ca
diff --git a/runtime/pom.xml b/runtime/pom.xml
index 5b91611..be493dd 100644
--- a/runtime/pom.xml
+++ b/runtime/pom.xml
@@ -136,4 +136,4 @@
</plugin>
</plugins>
</build>
-</project>
+</project>
\ No newline at end of file
diff --git a/runtime/src/main/java/org/onosproject/yang/runtime/SerializerHelper.java b/runtime/src/main/java/org/onosproject/yang/runtime/SerializerHelper.java
index ee8de3d..7fae4ce 100644
--- a/runtime/src/main/java/org/onosproject/yang/runtime/SerializerHelper.java
+++ b/runtime/src/main/java/org/onosproject/yang/runtime/SerializerHelper.java
@@ -24,6 +24,7 @@
import org.onosproject.yang.model.InnerNode;
import org.onosproject.yang.model.LeafNode;
import org.onosproject.yang.model.LeafSchemaContext;
+import org.onosproject.yang.model.LeafType;
import org.onosproject.yang.model.ListSchemaContext;
import org.onosproject.yang.model.ResourceId;
import org.onosproject.yang.model.SchemaContext;
@@ -318,6 +319,8 @@
boolean initWithRId = false;
HelperContext info = (HelperContext) builder.appInfo();
ExtResourceIdBldr curBldr = info.getResourceIdBuilder();
+ LeafSchemaContext schema;
+ LeafType lType;
if (curBldr != null) {
rIdBldr = info.getResourceIdBuilder();
@@ -357,18 +360,24 @@
if (((YangLeaf) childSchema).isKeyLeaf()) {
throw new IllegalArgumentException(E_RESID);
}
- valObject = getLeaf(value, childSchema);
- valNamespace = getValidValNamespace(value, childSchema,
+ schema = (LeafSchemaContext) childSchema;
+ valObject = getLeaf(value, schema);
+ valNamespace = getValidValNamespace(value, schema,
valNamespace);
- builder = LeafNode.builder(name, namespace).type(nodeType)
- .value(valObject).valueNamespace(valNamespace);
+ lType = schema.getLeafType(value);
+ builder = LeafNode.builder(name, namespace)
+ .type(nodeType).value(valObject)
+ .valueNamespace(valNamespace).leafType(lType);
break;
case MULTI_INSTANCE_LEAF_VALUE_NODE:
- valObject = getLeafList(value, childSchema);
- valNamespace = getValidValNamespace(value, childSchema,
+ schema = (LeafSchemaContext) childSchema;
+ valObject = getLeafList(value, schema);
+ valNamespace = getValidValNamespace(value, schema,
valNamespace);
- builder = LeafNode.builder(name, namespace).type(nodeType)
- .value(valObject).valueNamespace(valNamespace);
+ lType = schema.getLeafType(value);
+ builder = LeafNode.builder(name, namespace)
+ .type(nodeType).value(valObject)
+ .valueNamespace(valNamespace).leafType(lType);
builder = builder.addLeafListValue(valObject);
break;
default:
@@ -383,24 +392,28 @@
} else {
switch (nodeType) {
case SINGLE_INSTANCE_LEAF_VALUE_NODE:
- valObject = getLeaf(value, childSchema);
- valNamespace = getValidValNamespace(value, childSchema,
+ schema = (LeafSchemaContext) childSchema;
+ valObject = getLeaf(value, schema);
+ valNamespace = getValidValNamespace(value, schema,
valNamespace);
+ lType = schema.getLeafType(value);
if (((YangLeaf) childSchema).isKeyLeaf()) {
builder = builder.addKeyLeaf(
name, namespace, valObject);
}
builder = builder.createChildBuilder(
name, namespace, valObject, valNamespace)
- .type(nodeType);
+ .type(nodeType).leafType(lType);
break;
case MULTI_INSTANCE_LEAF_VALUE_NODE:
- valObject = getLeafList(value, childSchema);
- valNamespace = getValidValNamespace(value, childSchema,
+ schema = (LeafSchemaContext) childSchema;
+ valObject = getLeafList(value, schema);
+ valNamespace = getValidValNamespace(value, schema,
valNamespace);
+ lType = schema.getLeafType(value);
builder = builder.createChildBuilder(
name, namespace, valObject, valNamespace)
- .type(nodeType);
+ .type(nodeType).leafType(lType);
builder = builder.addLeafListValue(valObject);
break;
default:
@@ -422,40 +435,36 @@
* value.
*
* @param val value in string
- * @param ctx schema context
+ * @param ctx leaf schema context
* @return object of value
* @throws IllegalArgumentException a violation of data type rules
*/
- private static Object getLeafList(String val, SchemaContext ctx)
+ private static Object getLeafList(String val, LeafSchemaContext ctx)
throws IllegalArgumentException {
- LeafSchemaContext schema;
try {
- schema = (LeafSchemaContext) ctx;
- ((YangLeafList) schema).getDataType().isValidValue(val);
+ ((YangLeafList) ctx).getDataType().isValidValue(val);
} catch (DataModelException e) {
throw new IllegalArgumentException(e.getMessage());
}
- return schema.fromString(val);
+ return ctx.fromString(val);
}
/**
* Returns the corresponding datatype value object for given leaf value.
*
* @param val value in string
- * @param ctx schema context
+ * @param ctx leaf schema context
* @return object of value
* @throws IllegalArgumentException a violation of data type rules
*/
- private static Object getLeaf(String val, SchemaContext ctx)
+ private static Object getLeaf(String val, LeafSchemaContext ctx)
throws IllegalArgumentException {
- LeafSchemaContext schema;
try {
- schema = (LeafSchemaContext) ctx;
- ((YangLeaf) schema).getDataType().isValidValue(val);
+ ((YangLeaf) ctx).getDataType().isValidValue(val);
} catch (DataModelException e) {
throw new IllegalArgumentException(e.getMessage());
}
- return schema.fromString(val);
+ return ctx.fromString(val);
}
@@ -463,16 +472,15 @@
* Returns valid value namespace which is module's namespace.
*
* @param val value in string
- * @param ctx schema context
+ * @param ctx leaf schema context
* @param actual valNamespace either module name of namespace
* @return validated value module's namespace
* @throws IllegalArgumentException if input namespace is invalid
*/
- private static String getValidValNamespace(String val, SchemaContext ctx,
+ private static String getValidValNamespace(String val, LeafSchemaContext ctx,
String actual)
throws IllegalArgumentException {
- LeafSchemaContext schema = (LeafSchemaContext) ctx;
- YangNamespace expected = schema.getValueNamespace(val);
+ YangNamespace expected = ctx.getValueNamespace(val);
if (actual == null) {
if (expected == null ||
expected.getModuleNamespace().equals(ctx.getSchemaId().namespace())) {
diff --git a/runtime/src/main/java/org/onosproject/yang/runtime/impl/DataTreeBuilderHelper.java b/runtime/src/main/java/org/onosproject/yang/runtime/impl/DataTreeBuilderHelper.java
index 8294b75..a3bbe9c 100644
--- a/runtime/src/main/java/org/onosproject/yang/runtime/impl/DataTreeBuilderHelper.java
+++ b/runtime/src/main/java/org/onosproject/yang/runtime/impl/DataTreeBuilderHelper.java
@@ -33,6 +33,7 @@
import org.onosproject.yang.model.InnerNode;
import org.onosproject.yang.model.LeafNode;
import org.onosproject.yang.model.LeafSchemaContext;
+import org.onosproject.yang.model.LeafType;
import org.onosproject.yang.model.YangNamespace;
import java.util.ArrayList;
@@ -909,12 +910,19 @@
*/
List<DataNode.Builder> addLeafList(Set<Object> leafListVal,
YangLeafList leafList) {
+ LeafType ltype;
if (extBuilder != null) {
for (Object val : leafListVal) {
+ if (val != null) {
+ ltype = leafList.getLeafType(val.toString());
+ } else {
+ ltype = leafList.getLeafType(null);
+ }
String valNamespace = getValNamespace(val, leafList);
DataNode.Builder leaf = extBuilder.createChildBuilder(
leafList.getName(), leafList.getNameSpace()
- .getModuleNamespace(), val, valNamespace);
+ .getModuleNamespace(), val, valNamespace)
+ .leafType(ltype);
leaf.type(MULTI_INSTANCE_LEAF_VALUE_NODE);
leaf.addLeafListValue(val);
extBuilder = leaf.exitNode();
@@ -924,11 +932,16 @@
//In case of root node leaf lists.
List<DataNode.Builder> builders = new ArrayList<>();
for (Object val : leafListVal) {
+ if (val != null) {
+ ltype = leafList.getLeafType(val.toString());
+ } else {
+ ltype = leafList.getLeafType(null);
+ }
String valNamespace = getValNamespace(val, leafList);
DataNode.Builder leaf = LeafNode.builder(
leafList.getName(), leafList.getNameSpace()
.getModuleNamespace()).value(val)
- .valueNamespace(valNamespace);
+ .valueNamespace(valNamespace).leafType(ltype);
leaf.type(MULTI_INSTANCE_LEAF_VALUE_NODE);
leaf.addLeafListValue(val);
builders.add(leaf);
@@ -972,6 +985,12 @@
*/
DataNode.Builder createLeafNode(YangLeaf yangLeaf, Object val) {
String valNamespace = getValNamespace(val, yangLeaf);
+ LeafType ltype;
+ if (val != null) {
+ ltype = yangLeaf.getLeafType(val.toString());
+ } else {
+ ltype = yangLeaf.getLeafType(null);
+ }
if (extBuilder != null) {
//Add leaf to key leaves.
if (yangLeaf.isKeyLeaf()) {
@@ -981,7 +1000,8 @@
//build leaf node and add to parent node.
DataNode.Builder leaf = extBuilder.createChildBuilder(
yangLeaf.getName(), yangLeaf.getNameSpace()
- .getModuleNamespace(), val, valNamespace);
+ .getModuleNamespace(), val, valNamespace)
+ .leafType(ltype);
leaf.type(SINGLE_INSTANCE_LEAF_VALUE_NODE);
extBuilder = leaf.exitNode();
@@ -990,7 +1010,7 @@
return LeafNode.builder(yangLeaf.getName(), yangLeaf.getNameSpace()
.getModuleNamespace())
.type(SINGLE_INSTANCE_LEAF_VALUE_NODE)
- .value(val).valueNamespace(valNamespace);
+ .value(val).valueNamespace(valNamespace).leafType(ltype);
}
/**
diff --git a/runtime/src/main/java/org/onosproject/yang/runtime/impl/ModelConverterUtil.java b/runtime/src/main/java/org/onosproject/yang/runtime/impl/ModelConverterUtil.java
index ade1435..7c52154 100644
--- a/runtime/src/main/java/org/onosproject/yang/runtime/impl/ModelConverterUtil.java
+++ b/runtime/src/main/java/org/onosproject/yang/runtime/impl/ModelConverterUtil.java
@@ -260,7 +260,7 @@
*
* @param holder leaf/leaf-list holder
* @param holderObj leaf/leaf-list holder object
- * @param leaf leaf schema object?
+ * @param leaf leaf schema object?
* @param name leaf/leaf-list name
* @param fieldObj object of the leaf/leaf-list field
* @param dataType type of the leaf/leaf-list
@@ -312,6 +312,16 @@
case LEAFREF:
YangLeafRef leafRef = (YangLeafRef) dataType
.getDataTypeExtendedInfo();
+ Object refLeaf = leafRef.getReferredLeafOrLeafList();
+ if (refLeaf instanceof YangLeaf) {
+ holder = ((YangSchemaNode) ((YangLeaf) refLeaf)
+ .getContainedIn());
+ name = ((YangLeaf) refLeaf).getName();
+ } else if (refLeaf instanceof YangLeafList) {
+ holder = ((YangSchemaNode) ((YangLeafList) refLeaf)
+ .getContainedIn());
+ name = ((YangLeafList) refLeaf).getName();
+ }
return getObjFromType(holder, holderObj, leaf, name, fieldObj,
leafRef.getEffectiveDataType());
diff --git a/runtime/src/test/java/org/onosproject/yang/runtime/impl/TestUtils.java b/runtime/src/test/java/org/onosproject/yang/runtime/impl/TestUtils.java
index cc45613..dbe6443 100644
--- a/runtime/src/test/java/org/onosproject/yang/runtime/impl/TestUtils.java
+++ b/runtime/src/test/java/org/onosproject/yang/runtime/impl/TestUtils.java
@@ -24,6 +24,7 @@
import org.onosproject.yang.model.KeyLeaf;
import org.onosproject.yang.model.LeafListKey;
import org.onosproject.yang.model.LeafNode;
+import org.onosproject.yang.model.LeafType;
import org.onosproject.yang.model.ListKey;
import org.onosproject.yang.model.NodeKey;
import org.onosproject.yang.model.ResourceId;
@@ -242,6 +243,35 @@
}
/**
+ * Validates the give data node content.
+ * @param node data node
+ * @param n name
+ * @param ns namespace
+ * @param type leaf node type
+ * @param value value of leaf
+ * @param isleaf
+ */
+ public static void validateDataNode(DataNode node, String n, String ns,
+ LeafType type,
+ String value, boolean isleaf) {
+ NodeKey k = node.key();
+ SchemaId id = k.schemaId();
+ assertEquals(id.name(), n);
+ assertEquals(id.namespace(), ns);
+ if (isleaf) {
+ assertEquals(node.type(), SINGLE_INSTANCE_LEAF_VALUE_NODE);
+ } else {
+ assertEquals(node.type(), MULTI_INSTANCE_LEAF_VALUE_NODE);
+ }
+ assertEquals(((LeafNode) node).leafType(), type);
+ if (((LeafNode) node).value() == null) {
+ assertNull(value);
+ } else {
+ assertEquals(((LeafNode) node).value().toString(), value);
+ }
+ }
+
+ /**
* Validates the give key leaf content.
*
* @param key key leaf
diff --git a/runtime/src/test/java/org/onosproject/yang/runtime/impl/YobSimpleDataTypeTest.java b/runtime/src/test/java/org/onosproject/yang/runtime/impl/YobSimpleDataTypeTest.java
index 29f3333..27de52e 100644
--- a/runtime/src/test/java/org/onosproject/yang/runtime/impl/YobSimpleDataTypeTest.java
+++ b/runtime/src/test/java/org/onosproject/yang/runtime/impl/YobSimpleDataTypeTest.java
@@ -25,12 +25,14 @@
import org.onosproject.yang.model.DataNode;
import org.onosproject.yang.model.DataNode.Builder;
import org.onosproject.yang.model.DefaultResourceData;
+import org.onosproject.yang.model.InnerNode;
import org.onosproject.yang.model.ModelObject;
import org.onosproject.yang.model.ModelObjectData;
import org.onosproject.yang.model.ResourceData;
import java.util.Base64;
import java.util.BitSet;
+import java.util.Iterator;
import java.util.List;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -38,17 +40,36 @@
import static org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.tpdfun0.Tpdfun0Enum.ASTERISK;
import static org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.tpdfun0.Tpdfun0Enum.SUCCESSFUL_EXIT;
import static org.onosproject.yang.gen.v1.simpledatatypesll.rev20131112.simpledatatypesll.cont1.Lfenum1Enum.GRACE_PERIOD_EXPIRED;
+import static org.onosproject.yang.model.DataNode.Type.SINGLE_INSTANCE_NODE;
+import static org.onosproject.yang.model.LeafType.BINARY;
+import static org.onosproject.yang.model.LeafType.BITS;
+import static org.onosproject.yang.model.LeafType.BOOLEAN;
+import static org.onosproject.yang.model.LeafType.DECIMAL64;
+import static org.onosproject.yang.model.LeafType.EMPTY;
+import static org.onosproject.yang.model.LeafType.ENUMERATION;
+import static org.onosproject.yang.model.LeafType.IDENTITYREF;
+import static org.onosproject.yang.model.LeafType.INSTANCE_IDENTIFIER;
+import static org.onosproject.yang.model.LeafType.INT16;
+import static org.onosproject.yang.model.LeafType.INT32;
+import static org.onosproject.yang.model.LeafType.INT64;
+import static org.onosproject.yang.model.LeafType.INT8;
+import static org.onosproject.yang.model.LeafType.STRING;
+import static org.onosproject.yang.model.LeafType.UINT16;
+import static org.onosproject.yang.model.LeafType.UINT32;
+import static org.onosproject.yang.model.LeafType.UINT64;
+import static org.onosproject.yang.model.LeafType.UINT8;
import static org.onosproject.yang.runtime.SerializerHelper.addDataNode;
import static org.onosproject.yang.runtime.SerializerHelper.exitDataNode;
import static org.onosproject.yang.runtime.SerializerHelper.initializeDataNode;
+import static org.onosproject.yang.runtime.impl.TestUtils.validateDataNode;
/**
* Tests the YANG object building for different data types.
*/
public class YobSimpleDataTypeTest {
- private static final String DATA_TYPE_NAME_SPACE = "simple:data:types";
- private static final String DATA_TYPE_NAME_SPACE_LL =
+ public static final String DT_NS = "simple:data:types";
+ private static final String DT_LL =
"simple:data:types:ll";
private static final String VALUE_NAMESPACE = "yms:test:ytb:data:types";
TestYangSerializerContext context = new TestYangSerializerContext();
@@ -58,170 +79,170 @@
private DataNode buildDataNodeForSimpleDataTypes() {
dBlr = initializeDataNode(context);
value = null;
- dBlr = addDataNode(dBlr, "cont", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "cont", DT_NS, value, null);
value = "-128";
- dBlr = addDataNode(dBlr, "lfnint8Min", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfnint8Min", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "127";
- dBlr = addDataNode(dBlr, "lfnint8Max", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfnint8Max", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "-32768";
- dBlr = addDataNode(dBlr, "lfnint16Min", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfnint16Min", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "32767";
- dBlr = addDataNode(dBlr, "lfnint16Max", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfnint16Max", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "-2147483648";
- dBlr = addDataNode(dBlr, "lfnint32Min", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfnint32Min", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "2147483647";
- dBlr = addDataNode(dBlr, "lfnint32Max", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfnint32Max", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "10090";
- dBlr = addDataNode(dBlr, "lfnint64Min", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfnint64Min", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "100700";
- dBlr = addDataNode(dBlr, "lfnint64Max", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfnint64Max", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "255";
- dBlr = addDataNode(dBlr, "lfnuint8Max", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfnuint8Max", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "65535";
- dBlr = addDataNode(dBlr, "lfnuint16Max", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfnuint16Max", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "10000";
- dBlr = addDataNode(dBlr, "lfnuint32Max", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfnuint32Max", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "32656256558";
- dBlr = addDataNode(dBlr, "lfuint64Max", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfuint64Max", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "string1";
- dBlr = addDataNode(dBlr, "lfstr", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfstr", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "string2";
- dBlr = addDataNode(dBlr, "lfstr1", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfstr1", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "true";
- dBlr = addDataNode(dBlr, "lfbool1", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfbool1", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "false";
- dBlr = addDataNode(dBlr, "lfbool2", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfbool2", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "false";
- dBlr = addDataNode(dBlr, "lfbool3", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfbool3", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "-922337203685477580.8";
- dBlr = addDataNode(dBlr, "lfdecimal1", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfdecimal1", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "-92233720368547758.08";
- dBlr = addDataNode(dBlr, "lfdecimal2", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfdecimal2", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "-9223372036854775.808";
- dBlr = addDataNode(dBlr, "lfdecimal3", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfdecimal3", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "-922337203685477.5808";
- dBlr = addDataNode(dBlr, "lfdecimal4", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfdecimal4", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "-9223372036854.775808";
- dBlr = addDataNode(dBlr, "lfdecimal6", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfdecimal6", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "3.3ms";
- dBlr = addDataNode(dBlr, "lfenum", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfenum", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "bit1";
- dBlr = addDataNode(dBlr, "lfbits", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfbits", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "aGV5";
- dBlr = addDataNode(dBlr, "lfbinary", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfbinary", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "path";
- dBlr = addDataNode(dBlr, "lfref1", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfref1", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "100";
- dBlr = addDataNode(dBlr, "lfref2", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfref2", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "";
- dBlr = addDataNode(dBlr, "lfempty", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfempty", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "cost";
- dBlr = addDataNode(dBlr, "lfunion1", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfunion1", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "-92233720368547758.08";
- dBlr = addDataNode(dBlr, "lfunion2", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfunion2", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "true";
- dBlr = addDataNode(dBlr, "lfunion4", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfunion4", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "color";
- dBlr = addDataNode(dBlr, "lfunion5", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfunion5", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "b1";
- dBlr = addDataNode(dBlr, "lfunion7", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfunion7", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "bandwidth";
- dBlr = addDataNode(dBlr, "lfunion8", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfunion8", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "200";
- dBlr = addDataNode(dBlr, "lfunion9", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfunion9", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "true";
- dBlr = addDataNode(dBlr, "lfunion10", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfunion10", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "b1";
- dBlr = addDataNode(dBlr, "lfunion11", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfunion11", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "true";
- dBlr = addDataNode(dBlr, "lfunion12", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfunion12", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "b2";
- dBlr = addDataNode(dBlr, "lfunion13", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfunion13", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "one";
- dBlr = addDataNode(dBlr, "lfunion14", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfunion14", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "iden";
- dBlr = addDataNode(dBlr, "identityref1", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "identityref1", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "pro";
@@ -229,175 +250,340 @@
dBlr = exitDataNode(dBlr);
value = "successful exit";
- dBlr = addDataNode(dBlr, "lfenum1", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfenum1", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "*";
- dBlr = addDataNode(dBlr, "lfenum2", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lfenum2", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "/cont";
- dBlr = addDataNode(dBlr, "inst-iden", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "inst-iden", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
dBlr = getLeafRefData(dBlr);
+ validateDataNodeForSimpleDataTypes(dBlr.build());
dBlr = exitDataNode(dBlr);
return dBlr.build();
}
+ public static void validateDataNodeForSimpleDataTypes(DataNode node) {
+ DataNode n = node;
+ validateDataNode(n, "cont", DT_NS, SINGLE_INSTANCE_NODE,
+ true, null);
+ Iterator<DataNode> it3 = ((InnerNode) n).childNodes().values()
+ .iterator();
+ n = it3.next();
+ validateDataNode(n, "lfnint8Min", DT_NS, INT8, "-128", true);
+ n = it3.next();
+ validateDataNode(n, "lfnint8Max", DT_NS, INT8, "127", true);
+ n = it3.next();
+ validateDataNode(n, "lfnint16Min", DT_NS, INT16, "-32768", true);
+ n = it3.next();
+ validateDataNode(n, "lfnint16Max", DT_NS, INT16, "32767", true);
+ n = it3.next();
+ validateDataNode(n, "lfnint32Min", DT_NS, INT32, "-2147483648", true);
+ n = it3.next();
+ validateDataNode(n, "lfnint32Max", DT_NS, INT32, "2147483647", true);
+ n = it3.next();
+ validateDataNode(n, "lfnint64Min", DT_NS, INT64, "10090", true);
+ n = it3.next();
+ validateDataNode(n, "lfnint64Max", DT_NS, INT64, "100700", true);
+ n = it3.next();
+ validateDataNode(n, "lfnuint8Max", DT_NS, UINT8, "255", true);
+ n = it3.next();
+ validateDataNode(n, "lfnuint16Max", DT_NS, UINT16, "65535", true);
+ n = it3.next();
+ validateDataNode(n, "lfnuint32Max", DT_NS, UINT32, "10000", true);
+ n = it3.next();
+ validateDataNode(n, "lfuint64Max", DT_NS, UINT64, "32656256558", true);
+ n = it3.next();
+ validateDataNode(n, "lfstr", DT_NS, STRING, "string1", true);
+ n = it3.next();
+ validateDataNode(n, "lfstr1", DT_NS, STRING, "string2", true);
+ n = it3.next();
+ validateDataNode(n, "lfbool1", DT_NS, BOOLEAN, "true", true);
+ n = it3.next();
+ validateDataNode(n, "lfbool2", DT_NS, BOOLEAN, "false", true);
+ n = it3.next();
+ validateDataNode(n, "lfbool3", DT_NS, BOOLEAN, "false", true);
+ n = it3.next();
+ validateDataNode(n, "lfdecimal1", DT_NS, DECIMAL64,
+ "-922337203685477580.8", true);
+ n = it3.next();
+ validateDataNode(n, "lfdecimal2", DT_NS, DECIMAL64,
+ "-92233720368547758.08", true);
+ n = it3.next();
+ validateDataNode(n, "lfdecimal3", DT_NS, DECIMAL64,
+ "-9223372036854775.808", true);
+ n = it3.next();
+ validateDataNode(n, "lfdecimal4", DT_NS, DECIMAL64,
+ "-922337203685477.5808", true);
+ n = it3.next();
+ validateDataNode(n, "lfdecimal6", DT_NS, DECIMAL64,
+ "-9223372036854.775808", true);
+ n = it3.next();
+ validateDataNode(n, "lfenum", DT_NS, ENUMERATION, "3.3ms", true);
+ n = it3.next();
+ validateDataNode(n, "lfbits", DT_NS, BITS, "bit1", true);
+ n = it3.next();
+ validateDataNode(n, "lfbinary", DT_NS, BINARY, "aGV5", true);
+ n = it3.next();
+ validateDataNode(n, "lfref1", DT_NS, STRING, "path", true);
+ n = it3.next();
+ validateDataNode(n, "lfref2", DT_NS, INT8, "100", true);
+ n = it3.next();
+ validateDataNode(n, "lfempty", DT_NS, EMPTY, null, true);
+ n = it3.next();
+ validateDataNode(n, "lfunion1", DT_NS, STRING, "cost", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion2", DT_NS, DECIMAL64,
+ "-92233720368547758.08", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion4", DT_NS, BOOLEAN, "true", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion5", DT_NS, STRING, "color", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion7", DT_NS, BITS, "b1", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion8", DT_NS, STRING, "bandwidth", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion9", DT_NS, UINT16, "200", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion10", DT_NS, BOOLEAN, "true", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion11", DT_NS, BITS, "b1", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion12", DT_NS, EMPTY, "true", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion13", DT_NS, BITS, "b2", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion14", DT_NS, ENUMERATION, "one", true);
+ n = it3.next();
+ validateDataNode(n, "identityref1", DT_NS, IDENTITYREF, "iden", true);
+ n = it3.next();
+ validateDataNode(n, "identityref2", DT_NS, IDENTITYREF, "pro", true);
+ n = it3.next();
+ validateDataNode(n, "lfenum1", DT_NS, ENUMERATION, "successful exit", true);
+ n = it3.next();
+ validateDataNode(n, "lfenum2", DT_NS, ENUMERATION, "*", true);
+ n = it3.next();
+ validateDataNode(n, "inst-iden", DT_NS, INSTANCE_IDENTIFIER, "/cont", true);
+ validateLeafRef(it3);
+ }
+
+ static void validateLeafRef(Iterator<DataNode> it3) {
+
+ DataNode n = it3.next();
+ validateDataNode(n, "lref1", DT_NS, INT8, "8", true);
+ n = it3.next();
+ validateDataNode(n, "lref2", DT_NS, IDENTITYREF, "val", true);
+ n = it3.next();
+ validateDataNode(n, "lref3", DT_NS, ENUMERATION, "zero", true);
+ n = it3.next();
+ validateDataNode(n, "lref4", DT_NS, BITS, "b2 b3", true);
+ n = it3.next();
+ validateDataNode(n, "lref5", DT_NS, DECIMAL64, "-92233720368547758.08",
+ true);
+ n = it3.next();
+ validateDataNode(n, "lref6", DT_NS, INT8, "10", true);
+ n = it3.next();
+ validateDataNode(n, "lref7", DT_NS, ENUMERATION, "enum4", true);
+ n = it3.next();
+ validateDataNode(n, "lref8", DT_NS, DECIMAL64, "-9223372036854.775808",
+ true);
+ n = it3.next();
+ validateDataNode(n, "lref9", DT_NS, BINARY, "MTAxMDEwMTAx", true);
+ n = it3.next();
+ validateDataNode(n, "lref10", DT_NS, EMPTY, null, true);
+ n = it3.next();
+ validateDataNode(n, "lref11", DT_NS, EMPTY, null, true);
+ n = it3.next();
+ validateDataNode(n, "lref12", DT_NS, BITS, "b3", true);
+ n = it3.next();
+ validateDataNode(n, "lref13", DT_NS, EMPTY, null, true);
+ n = it3.next();
+ validateDataNode(n, "lref14", DT_NS, BITS, "b1 b2 b3", true);
+ n = it3.next();
+ validateDataNode(n, "lref15", DT_NS, INSTANCE_IDENTIFIER, "/cont", true);
+ n = it3.next();
+ validateDataNode(n, "lref16", DT_NS, IDENTITYREF, "physical", true);
+ n = it3.next();
+ validateDataNode(n, "lref17", DT_NS, UINT64, "784985", true);
+ n = it3.next();
+ validateDataNode(n, "lref18", DT_NS, BINARY, "MTExMTExMTE=", true);
+ n = it3.next();
+ validateDataNode(n, "lref19", DT_NS, ENUMERATION, "hundred", true);
+ n = it3.next();
+ validateDataNode(n, "lref20", DT_NS, STRING, "leafref", true);
+ n = it3.next();
+ validateDataNode(n, "iref1", DT_NS, IDENTITYREF, "val", true);
+ n = it3.next();
+ validateDataNode(n, "iref3", DT_NS, IDENTITYREF, "physical", true);
+ n = it3.next();
+ validateDataNode(n, "iref2", DT_NS, IDENTITYREF, "pro", false);
+ n = it3.next();
+ validateDataNode(n, "iref4", DT_NS, IDENTITYREF, "virtual", false);
+ }
+
private Builder getLeafRefData(Builder dBlr) {
value = "8";
- dBlr = addDataNode(dBlr, "lref1", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lref1", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "val";
- dBlr = addDataNode(dBlr, "lref2", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lref2", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "zero";
- dBlr = addDataNode(dBlr, "lref3", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lref3", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "b2 b3";
- dBlr = addDataNode(dBlr, "lref4", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lref4", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "-92233720368547758.08";
- dBlr = addDataNode(dBlr, "lref5", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lref5", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "10";
- dBlr = addDataNode(dBlr, "lref6", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lref6", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "enum4";
- dBlr = addDataNode(dBlr, "lref7", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lref7", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "-9223372036854.775808";
- dBlr = addDataNode(dBlr, "lref8", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lref8", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "MTAxMDEwMTAx";
- dBlr = addDataNode(dBlr, "lref9", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lref9", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "";
- dBlr = addDataNode(dBlr, "lref10", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lref10", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "";
- dBlr = addDataNode(dBlr, "lref11", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lref11", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "b3";
- dBlr = addDataNode(dBlr, "lref12", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lref12", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "";
- dBlr = addDataNode(dBlr, "lref13", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lref13", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "b1 b2 b3";
- dBlr = addDataNode(dBlr, "lref14", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lref14", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "/cont";
- dBlr = addDataNode(dBlr, "lref15", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lref15", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "physical";
- dBlr = addDataNode(dBlr, "lref16", DATA_TYPE_NAME_SPACE, value,
+ dBlr = addDataNode(dBlr, "lref16", DT_NS, value,
VALUE_NAMESPACE, null);
dBlr = exitDataNode(dBlr);
value = "784985";
- dBlr = addDataNode(dBlr, "lref17", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lref17", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "MTExMTExMTE=";
- dBlr = addDataNode(dBlr, "lref18", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lref18", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "hundred";
- dBlr = addDataNode(dBlr, "lref19", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lref19", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "leafref";
- dBlr = addDataNode(dBlr, "lref20", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lref20", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "val";
- dBlr = addDataNode(dBlr, "iref1", DATA_TYPE_NAME_SPACE, value, null);
- dBlr = exitDataNode(dBlr);
- value = "pro";
- dBlr = addDataNode(dBlr, "iref2", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "iref1", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "physical";
- dBlr = addDataNode(dBlr, "iref3", DATA_TYPE_NAME_SPACE, value,
+ dBlr = addDataNode(dBlr, "iref3", DT_NS, value,
VALUE_NAMESPACE, null);
dBlr = exitDataNode(dBlr);
+ value = "pro";
+ dBlr = addDataNode(dBlr, "iref2", DT_NS, value, null);
+ dBlr = exitDataNode(dBlr);
value = "virtual";
- dBlr = addDataNode(dBlr, "iref4", DATA_TYPE_NAME_SPACE, value,
+ dBlr = addDataNode(dBlr, "iref4", DT_NS, value,
VALUE_NAMESPACE, null);
dBlr = exitDataNode(dBlr);
- dBlr = addDataNode(dBlr, "cont3", DATA_TYPE_NAME_SPACE, null, null);
+ dBlr = addDataNode(dBlr, "cont3", DT_NS, null, null);
+ dBlr = getLeafListBuilder(dBlr);
+ dBlr = exitDataNode(dBlr);
+ return dBlr;
+ }
+
+ private Builder getLeafListBuilder(Builder dBlr) {
value = "108";
- dBlr = addDataNode(dBlr, "llref1", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "llref1", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "val";
- dBlr = addDataNode(dBlr, "llref2", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "llref2", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "one";
- dBlr = addDataNode(dBlr, "llref3", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "llref3", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "b1 b3";
- dBlr = addDataNode(dBlr, "llref4", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "llref4", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "-922337203685470058.08";
- dBlr = addDataNode(dBlr, "llref5", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "llref5", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "121";
- dBlr = addDataNode(dBlr, "llref6", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "llref6", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "3.3ms";
- dBlr = addDataNode(dBlr, "llref7", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "llref7", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "-9223372036000.775808";
- dBlr = addDataNode(dBlr, "llref8", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "llref8", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "MTExMTExMTE=";
- dBlr = addDataNode(dBlr, "llref9", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "llref9", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "";
- dBlr = addDataNode(dBlr, "llref11", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "llref11", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "b2";
- dBlr = addDataNode(dBlr, "llref12", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "llref12", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "";
- dBlr = addDataNode(dBlr, "llref13", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "llref13", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "b1";
- dBlr = addDataNode(dBlr, "llref14", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "llref14", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "/cont/con2";
- dBlr = addDataNode(dBlr, "llref15", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "llref15", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "virtual";
- dBlr = addDataNode(dBlr, "llref16", DATA_TYPE_NAME_SPACE, value,
+ dBlr = addDataNode(dBlr, "llref16", DT_NS, value,
"yms:test:ytb:data:types", null);
dBlr = exitDataNode(dBlr);
value = "78498522";
- dBlr = addDataNode(dBlr, "llref17", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "llref17", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "MDEwMTAxMDEw";
- dBlr = addDataNode(dBlr, "llref18", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "llref18", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "ten";
- dBlr = addDataNode(dBlr, "llref19", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "llref19", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "leaflistref";
- dBlr = addDataNode(dBlr, "llref20", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "llref20", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "check";
- dBlr = addDataNode(dBlr, "lref21", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "lref21", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "val";
- dBlr = addDataNode(dBlr, "iref1", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "iref1", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "pro";
- dBlr = addDataNode(dBlr, "iref2", DATA_TYPE_NAME_SPACE, value, null);
+ dBlr = addDataNode(dBlr, "iref2", DT_NS, value, null);
dBlr = exitDataNode(dBlr);
value = "physical";
- dBlr = addDataNode(dBlr, "iref3", DATA_TYPE_NAME_SPACE, value,
+ dBlr = addDataNode(dBlr, "iref3", DT_NS, value,
VALUE_NAMESPACE, null);
dBlr = exitDataNode(dBlr);
value = "virtual";
- dBlr = addDataNode(dBlr, "iref4", DATA_TYPE_NAME_SPACE, value,
+ dBlr = addDataNode(dBlr, "iref4", DT_NS, value,
VALUE_NAMESPACE, null);
dBlr = exitDataNode(dBlr);
- dBlr = exitDataNode(dBlr);
return dBlr;
}
@@ -405,7 +591,7 @@
private DataNode buildDnForLeafListSimpleDataTypes() {
dBlr = initializeDataNode(context);
value = null;
- dBlr = addDataNode(dBlr, "cont1", DATA_TYPE_NAME_SPACE_LL, value, null);
+ dBlr = addDataNode(dBlr, "cont1", DT_LL, value, null);
value = "-128";
dBlr = addDataNode(dBlr, "lfnint8Min", null, value, null);
@@ -578,12 +764,115 @@
value = "*";
dBlr = addDataNode(dBlr, "lfenum2", null, value, null);
dBlr = exitDataNode(dBlr);
-
+ validateLeafListDataTypes(dBlr.build());
dBlr = exitDataNode(dBlr);
return dBlr.build();
}
+ private void validateLeafListDataTypes(DataNode node) {
+ DataNode n = node;
+ validateDataNode(n, "cont1", DT_LL, SINGLE_INSTANCE_NODE,
+ true, null);
+ Iterator<DataNode> it3 = ((InnerNode) n).childNodes().values()
+ .iterator();
+ n = it3.next();
+ validateDataNode(n, "lfnint8Min", DT_LL, INT8, "-128", false);
+ n = it3.next();
+ validateDataNode(n, "lfnint8Max", DT_LL, INT8, "127", false);
+ n = it3.next();
+ validateDataNode(n, "lfnint16Min", DT_LL, INT16, "-32768", false);
+ n = it3.next();
+ validateDataNode(n, "lfnint16Max", DT_LL, INT16, "32767", false);
+ n = it3.next();
+ validateDataNode(n, "lfnint32Min", DT_LL, INT32, "-2147483648", false);
+ n = it3.next();
+ validateDataNode(n, "lfnint32Max", DT_LL, INT32, "2147483647", false);
+ n = it3.next();
+ validateDataNode(n, "lfnint64Min", DT_LL, INT64, "10090", false);
+ n = it3.next();
+ validateDataNode(n, "lfnint64Max", DT_LL, INT64, "100700", false);
+ n = it3.next();
+ validateDataNode(n, "lfnuint8Max", DT_LL, UINT8, "255", false);
+ n = it3.next();
+ validateDataNode(n, "lfnuint16Max", DT_LL, UINT16, "65535", false);
+ n = it3.next();
+ validateDataNode(n, "lfnuint32Max", DT_LL, UINT32, "10000", false);
+ n = it3.next();
+ validateDataNode(n, "lfuint64Max", DT_LL, UINT64, "32656256558", false);
+ n = it3.next();
+ validateDataNode(n, "lfstr", DT_LL, STRING, "string1", false);
+ n = it3.next();
+ validateDataNode(n, "lfstr1", DT_LL, STRING, "string2", false);
+ n = it3.next();
+ validateDataNode(n, "lfbool1", DT_LL, BOOLEAN, "true", false);
+ n = it3.next();
+ validateDataNode(n, "lfbool2", DT_LL, BOOLEAN, "false", false);
+ n = it3.next();
+ validateDataNode(n, "lfbool3", DT_LL, BOOLEAN, "false", false);
+ n = it3.next();
+ validateDataNode(n, "lfdecimal1", DT_LL, DECIMAL64,
+ "-922337203685477580.8", false);
+ n = it3.next();
+ validateDataNode(n, "lfdecimal2", DT_LL, DECIMAL64,
+ "-92233720368547758.08", false);
+ n = it3.next();
+ validateDataNode(n, "lfdecimal3", DT_LL, DECIMAL64,
+ "-9223372036854775.808", false);
+ n = it3.next();
+ validateDataNode(n, "lfdecimal4", DT_LL, DECIMAL64,
+ "-922337203685477.5808", false);
+ n = it3.next();
+ validateDataNode(n, "lfdecimal6", DT_LL, DECIMAL64,
+ "-9223372036854.775808", false);
+ n = it3.next();
+ validateDataNode(n, "lfenum", DT_LL, ENUMERATION, "enum1", false);
+ n = it3.next();
+ validateDataNode(n, "lfbits", DT_LL, BITS, "bit1", false);
+ n = it3.next();
+ validateDataNode(n, "lfbinary", DT_LL, BINARY, "aGVsbG8=", false);
+ n = it3.next();
+ validateDataNode(n, "lfref1", DT_LL, STRING, "path", false);
+ n = it3.next();
+ validateDataNode(n, "lfref2", DT_LL, INT8, "100", false);
+ n = it3.next();
+ validateDataNode(n, "lfempty", DT_LL, EMPTY, null, false);
+ n = it3.next();
+ validateDataNode(n, "lfunion1", DT_LL, STRING, "cost", false);
+ n = it3.next();
+ validateDataNode(n, "lfunion2", DT_LL, DECIMAL64,
+ "-92233720368547758.08", false);
+ n = it3.next();
+ validateDataNode(n, "lfunion4", DT_LL, BOOLEAN, "true", false);
+ n = it3.next();
+ validateDataNode(n, "lfunion5", DT_LL, STRING, "color", false);
+ n = it3.next();
+ validateDataNode(n, "lfunion7", DT_LL, BITS, "b1", false);
+ n = it3.next();
+ validateDataNode(n, "lfunion8", DT_LL, STRING, "bandwidth", false);
+ n = it3.next();
+ validateDataNode(n, "lfunion9", DT_LL, UINT16, "200", false);
+ n = it3.next();
+ validateDataNode(n, "lfunion10", DT_LL, BOOLEAN, "true", false);
+ n = it3.next();
+ validateDataNode(n, "lfunion11", DT_LL, BITS, "b1", false);
+ n = it3.next();
+ // need to be handled later
+ validateDataNode(n, "lfunion12", DT_LL, EMPTY, "true", false);
+ n = it3.next();
+ validateDataNode(n, "lfunion13", DT_LL, BITS, "b2", false);
+ n = it3.next();
+ validateDataNode(n, "lfunion14", DT_LL, ENUMERATION, "one", false);
+ n = it3.next();
+ validateDataNode(n, "identityref1", DT_LL, IDENTITYREF, "iden", false);
+ n = it3.next();
+ validateDataNode(n, "lfenum1", DT_LL, ENUMERATION,
+ "grace period expired", false);
+ n = it3.next();
+ validateDataNode(n, "lfenum2", DT_LL, ENUMERATION, "*", false);
+ }
+
+
@Test
public void allDataTypesTest() {
DataNode dataNode = buildDataNodeForSimpleDataTypes();
diff --git a/runtime/src/test/java/org/onosproject/yang/runtime/impl/YtbSimpleDataTypeTest.java b/runtime/src/test/java/org/onosproject/yang/runtime/impl/YtbSimpleDataTypeTest.java
new file mode 100644
index 0000000..d827f6c
--- /dev/null
+++ b/runtime/src/test/java/org/onosproject/yang/runtime/impl/YtbSimpleDataTypeTest.java
@@ -0,0 +1,447 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.yang.runtime.impl;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.DefaultCont;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.Iden;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.Pro;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.Tpdfbit;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.Tpdfun0;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.Tpdfun1;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.Tpdfun2;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.Tpdfun3;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.Tpdfun4;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.Val;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.cont.LfenumEnum;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.cont.Lfunion10Union;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.cont.Lfunion11Union;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.cont.Lfunion14Union;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.cont.Lfunion1Union;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.cont.Lfunion2Union;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.cont.Lfunion4Union;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.cont.Lfunion5Union;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.cont.Lfunion8Union;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.cont.Lfunion9Union;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.gr.Cont3;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.gr.DefaultCont3;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.tpdfun1.Tpdfun1Union;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.tpdfun2.Tpdfun2Union;
+import org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.tpdfun3.Tpdfun3Union;
+import org.onosproject.yang.gen.v1.ytbdatatypes.rev20160826.ytbdatatypes.Def1;
+import org.onosproject.yang.gen.v1.ytbdatatypes.rev20160826.ytbdatatypes.Def2;
+import org.onosproject.yang.gen.v1.ytbdatatypes.rev20160826.ytbdatatypes.Def3;
+import org.onosproject.yang.gen.v1.ytbdatatypes.rev20160826.ytbdatatypes.Physical;
+import org.onosproject.yang.gen.v1.ytbdatatypes.rev20160826.ytbdatatypes.Type;
+import org.onosproject.yang.gen.v1.ytbdatatypes.rev20160826.ytbdatatypes.Virtual;
+import org.onosproject.yang.gen.v1.ytbdatatypes.rev20160826.ytbdatatypes.def1.Def1Union;
+import org.onosproject.yang.model.DataNode;
+import org.onosproject.yang.model.DefaultModelObjectData.Builder;
+import org.onosproject.yang.model.InnerNode;
+import org.onosproject.yang.model.ResourceData;
+import org.onosproject.yang.model.ResourceId;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.Base64;
+import java.util.BitSet;
+import java.util.Iterator;
+import java.util.List;
+
+import static org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.cont.lfunion14union.Lfunion14UnionEnum1.ONE;
+import static org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.cont.lfunion14union.Lfunion14UnionEnum1.ZERO;
+import static org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.tpdfun0.Tpdfun0Enum.ASTERISK;
+import static org.onosproject.yang.gen.v1.simpledatatypes.rev20131112.simpledatatypes.tpdfun0.Tpdfun0Enum.SUCCESSFUL_EXIT;
+import static org.onosproject.yang.gen.v1.ytbdatatypes.rev20160826.ytbdatatypes.def1.def1union.Def1UnionEnum1.HUNDRED;
+import static org.onosproject.yang.gen.v1.ytbdatatypes.rev20160826.ytbdatatypes.def1.def1union.Def1UnionEnum1.TEN;
+import static org.onosproject.yang.gen.v1.ytbdatatypes.rev20160826.ytbdatatypes.def1.def1union.Def1UnionEnum1.YANGAUTOPREFIX3_3MS;
+import static org.onosproject.yang.model.DataNode.Type.SINGLE_INSTANCE_NODE;
+import static org.onosproject.yang.model.LeafType.BINARY;
+import static org.onosproject.yang.model.LeafType.BITS;
+import static org.onosproject.yang.model.LeafType.BOOLEAN;
+import static org.onosproject.yang.model.LeafType.DECIMAL64;
+import static org.onosproject.yang.model.LeafType.EMPTY;
+import static org.onosproject.yang.model.LeafType.ENUMERATION;
+import static org.onosproject.yang.model.LeafType.IDENTITYREF;
+import static org.onosproject.yang.model.LeafType.INSTANCE_IDENTIFIER;
+import static org.onosproject.yang.model.LeafType.INT16;
+import static org.onosproject.yang.model.LeafType.INT32;
+import static org.onosproject.yang.model.LeafType.INT64;
+import static org.onosproject.yang.model.LeafType.INT8;
+import static org.onosproject.yang.model.LeafType.STRING;
+import static org.onosproject.yang.model.LeafType.UINT16;
+import static org.onosproject.yang.model.LeafType.UINT32;
+import static org.onosproject.yang.model.LeafType.UINT64;
+import static org.onosproject.yang.model.LeafType.UINT8;
+import static org.onosproject.yang.runtime.impl.MockYangSchemaNodeProvider.processSchemaRegistry;
+import static org.onosproject.yang.runtime.impl.MockYangSchemaNodeProvider.registry;
+import static org.onosproject.yang.runtime.impl.TestUtils.validateDataNode;
+import static org.onosproject.yang.runtime.impl.YobSimpleDataTypeTest.DT_NS;
+import static org.onosproject.yang.runtime.impl.YobSimpleDataTypeTest.validateLeafRef;
+
+/**
+ * Unit test cases for resource id conversion from model object id.
+ */
+public class YtbSimpleDataTypeTest {
+
+ @Rule
+ public ExpectedException thrown = ExpectedException.none();
+ private ResourceData rscData;
+ private DefaultDataTreeBuilder treeBuilder;
+ private ResourceId id;
+ private Builder data;
+ DefaultYangModelRegistry reg;
+
+ /**
+ * Prior setup for each UT.
+ */
+ @Before
+ public void setUp() {
+ processSchemaRegistry();
+ reg = registry();
+ treeBuilder = new DefaultDataTreeBuilder(reg);
+ }
+
+
+ /**
+ * Processes simple datatype with different datatype combination.
+ */
+ @Test
+ public void processDataTypeValidationTest() {
+
+ DefaultCont cont = new DefaultCont();
+
+ byte value = -128;
+ cont.lfnint8Min(value);
+ value = 127;
+ cont.lfnint8Max(value);
+ short val = -32768;
+ cont.lfnint16Min(val);
+ val = 32767;
+ cont.lfnint16Max(val);
+ cont.lfnint32Min(-2147483648);
+ cont.lfnint32Max(2147483647);
+ cont.lfnint64Min(10090L);
+ cont.lfnint64Max(100700L);
+ val = 255;
+ cont.lfnuint8Max(val);
+ cont.lfnuint16Max(65535);
+ cont.lfnuint32Max(10000L);
+ cont.lfuint64Max((BigInteger.valueOf(32656256558L)));
+ cont.lfstr("string1");
+ cont.lfstr1("string2");
+ cont.lfbool1(true);
+ cont.lfbool2(false);
+ cont.lfbool3(false);
+ cont.lfdecimal1(new BigDecimal("-922337203685477580.8"));
+ cont.lfdecimal2(new BigDecimal("-92233720368547758.08"));
+ cont.lfdecimal3(new BigDecimal("-9223372036854775.808"));
+ cont.lfdecimal4(new BigDecimal("-922337203685477.5808"));
+ cont.lfdecimal6(new BigDecimal("-9223372036854.775808"));
+ cont.lfenum(LfenumEnum.YANGAUTOPREFIX3_3MS);
+ BitSet bits = new BitSet();
+ bits.set(0, true);
+ cont.lfbits(bits);
+ cont.lfbinary("hey".getBytes());
+ cont.lfref1("path");
+ value = 100;
+ cont.lfref2(value);
+ cont.lfempty(true);
+ cont.lfunion1(new Lfunion1Union("cost"));
+ cont.lfunion2(new Lfunion2Union(
+ new BigDecimal("-92233720368547758.08")));
+ cont.lfunion4(new Lfunion4Union("true"));
+ cont.lfunion5(new Lfunion5Union("color"));
+ cont.lfunion7(new Tpdfun3(new Tpdfun3Union(new Tpdfbit(bits))));
+ cont.lfunion8(new Lfunion8Union("bandwidth"));
+ cont.lfunion9(new Lfunion9Union(200));
+ cont.lfunion10(new Lfunion10Union(true));
+ cont.lfunion11(new Lfunion11Union(new Tpdfun2(new Tpdfun2Union(
+ new Tpdfun3(new Tpdfun3Union(new Tpdfbit(bits)))))));
+ cont.lfunion12(new Tpdfun2(new Tpdfun2Union(new Tpdfun4(true))));
+ BitSet bits1 = new BitSet();
+ bits1.set(1, true);
+ cont.lfunion13(new Tpdfbit(bits1));
+ cont.lfunion14(new Lfunion14Union(ONE));
+ cont.identityref1(Iden.class);
+ cont.identityref2(Pro.class);
+ cont.lfenum1(new Tpdfun0(SUCCESSFUL_EXIT));
+ cont.lfenum2(new Tpdfun0(ASTERISK));
+ cont.instIden("/cont");
+ value = 8;
+ cont.lref1(value);
+ cont.lref2(Val.class);
+ cont.lref3(new Lfunion14Union(ZERO));
+ BitSet bits2 = new BitSet();
+ bits2.set(1, 3, true);
+ cont.lref4(new Tpdfbit(bits2));
+ cont.lref5(new Lfunion11Union(new Tpdfun1(new Tpdfun1Union(
+ new BigDecimal("-92233720368547758.08")))));
+ value = 10;
+ cont.lref6(value);
+ cont.lref7(LfenumEnum.ENUM4);
+ cont.lref8(new BigDecimal("-9223372036854.775808"));
+ byte[] arr = Base64.getDecoder().decode("MTAxMDEwMTAx");
+ cont.lref9(arr);
+ cont.lref10(true);
+ cont.lref11(new Def3(true));
+ BitSet bits3 = new BitSet();
+ bits3.set(2, true);
+ cont.lref12(new Def2(bits3));
+ cont.lref13(true);
+ BitSet bits4 = new BitSet();
+ bits4.set(0, 3, true);
+ cont.lref14(bits4);
+ cont.lref15("/cont");
+ cont.lref16(Physical.class);
+ cont.lref17(new Def1(new Def1Union(BigInteger.valueOf(784985))));
+ arr = Base64.getDecoder().decode("MTExMTExMTE=");
+ cont.lref18(arr);
+ cont.lref19(new Def1(new Def1Union(HUNDRED)));
+ cont.lref20("leafref");
+ cont.iref1(Val.class);
+ List<Class<? extends Iden>> l = new ArrayList<>();
+ l.add(Pro.class);
+ cont.iref2(l);
+ cont.iref3(Physical.class);
+ List<Class<? extends Type>> l1 = new ArrayList<>();
+ l1.add(Virtual.class);
+ cont.iref4(l1);
+
+ Cont3 cont3 = getCont3Object();
+ cont.cont3(cont3);
+ data = new Builder();
+ data.addModelObject(cont);
+ rscData = treeBuilder.getResourceData(data.build());
+
+ List<DataNode> nodes = rscData.dataNodes();
+ DataNode n = nodes.get(0);
+ validateDataNodeForSimpleDataTypes(n);
+ DataNode n1 = nodes.get(0);
+ }
+
+ private Cont3 getCont3Object() {
+ DefaultCont3 cont3 = new DefaultCont3();
+ cont3.addToLlref1(108);
+ cont3.addToLlref2("val");
+ cont3.addToLlref3(ONE);
+ BitSet bits2 = new BitSet();
+ bits2.set(0, true);
+ bits2.set(2, true);
+ cont3.addToLlref4(new Tpdfbit(bits2));
+ cont3.addToLlref5(new BigDecimal("-92233720368547758.08"));
+ cont3.addToLlref6(121);
+ cont3.addToLlref7(YANGAUTOPREFIX3_3MS);
+ cont3.addToLlref8(new BigDecimal("-9223372036000.775808"));
+ byte[] arr = Base64.getDecoder().decode("MTExMTExMTE=");
+ cont3.addToLlref9(arr);
+ cont3.addToLlref10(true);
+ cont3.addToLlref11(true);
+ BitSet bits4 = new BitSet();
+ bits4.set(1, true);
+ cont3.addToLlref12(new Tpdfbit(bits4));
+ cont3.addToLlref13(true);
+ BitSet bits3 = new BitSet();
+ bits3.set(0, true);
+ cont3.addToLlref14(bits3);
+ cont3.addToLlref15("/cont/con2");
+ cont3.addToLlref16(Virtual.class);
+ cont3.addToLlref17(78498522);
+ cont3.addToLlref18(Base64.getDecoder().decode("MDEwMTAxMDEw"));
+ cont3.addToLlref19(TEN);
+ cont3.addToLlref20("leaflistref");
+ cont3.iref1(Val.class);
+ List<Class<? extends Iden>> l = new ArrayList<>();
+ l.add(Pro.class);
+ cont3.iref2(l);
+ cont3.iref3(Physical.class);
+ cont3.addToIref4(Virtual.class);
+ return cont3;
+ }
+
+ public void validateDataNodeForSimpleDataTypes(DataNode node) {
+ DataNode n = node;
+ validateDataNode(n, "cont", DT_NS, SINGLE_INSTANCE_NODE,
+ true, null);
+ Iterator<DataNode> it3 = ((InnerNode) n).childNodes().values()
+ .iterator();
+ n = it3.next();
+ validateDataNode(n, "lfnint8Min", DT_NS, INT8, "-128", true);
+ n = it3.next();
+ validateDataNode(n, "lfnint8Max", DT_NS, INT8, "127", true);
+ n = it3.next();
+ validateDataNode(n, "lfnint16Min", DT_NS, INT16, "-32768", true);
+ n = it3.next();
+ validateDataNode(n, "lfnint16Max", DT_NS, INT16, "32767", true);
+ n = it3.next();
+ validateDataNode(n, "lfnint32Min", DT_NS, INT32, "-2147483648", true);
+ n = it3.next();
+ validateDataNode(n, "lfnint32Max", DT_NS, INT32, "2147483647", true);
+ n = it3.next();
+ validateDataNode(n, "lfnint64Min", DT_NS, INT64, "10090", true);
+ n = it3.next();
+ validateDataNode(n, "lfnint64Max", DT_NS, INT64, "100700", true);
+ n = it3.next();
+ validateDataNode(n, "lfnuint8Max", DT_NS, UINT8, "255", true);
+ n = it3.next();
+ validateDataNode(n, "lfnuint16Max", DT_NS, UINT16, "65535", true);
+ n = it3.next();
+ validateDataNode(n, "lfnuint32Max", DT_NS, UINT32, "10000", true);
+ n = it3.next();
+ validateDataNode(n, "lfuint64Max", DT_NS, UINT64, "32656256558", true);
+ n = it3.next();
+ validateDataNode(n, "lfstr", DT_NS, STRING, "string1", true);
+ n = it3.next();
+ validateDataNode(n, "lfstr1", DT_NS, STRING, "string2", true);
+ n = it3.next();
+ validateDataNode(n, "lfbool1", DT_NS, BOOLEAN, "true", true);
+ n = it3.next();
+ validateDataNode(n, "lfbool2", DT_NS, BOOLEAN, "false", true);
+ n = it3.next();
+ validateDataNode(n, "lfbool3", DT_NS, BOOLEAN, "false", true);
+ n = it3.next();
+ validateDataNode(n, "lfdecimal1", DT_NS, DECIMAL64,
+ "-922337203685477580.8", true);
+ n = it3.next();
+ validateDataNode(n, "lfdecimal2", DT_NS, DECIMAL64,
+ "-92233720368547758.08", true);
+ n = it3.next();
+ validateDataNode(n, "lfdecimal3", DT_NS, DECIMAL64,
+ "-9223372036854775.808", true);
+ n = it3.next();
+ validateDataNode(n, "lfdecimal4", DT_NS, DECIMAL64,
+ "-922337203685477.5808", true);
+ n = it3.next();
+ validateDataNode(n, "lfdecimal6", DT_NS, DECIMAL64,
+ "-9223372036854.775808", true);
+ n = it3.next();
+ validateDataNode(n, "lfenum", DT_NS, ENUMERATION, "3.3ms", true);
+ n = it3.next();
+ validateDataNode(n, "lfbits", DT_NS, BITS, "bit1", true);
+ n = it3.next();
+ validateDataNode(n, "lfbinary", DT_NS, BINARY, "aGV5", true);
+ n = it3.next();
+ validateDataNode(n, "lfref1", DT_NS, STRING, "path", true);
+ n = it3.next();
+ validateDataNode(n, "lfref2", DT_NS, INT8, "100", true);
+ n = it3.next();
+ validateDataNode(n, "lfempty", DT_NS, EMPTY, null, true);
+ n = it3.next();
+ validateDataNode(n, "lfunion1", DT_NS, STRING, "cost", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion2", DT_NS, DECIMAL64,
+ "-92233720368547758.08", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion4", DT_NS, BOOLEAN, "true", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion5", DT_NS, STRING, "color", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion7", DT_NS, BITS, "b1", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion8", DT_NS, STRING, "bandwidth", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion9", DT_NS, UINT16, "200", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion10", DT_NS, BOOLEAN, "true", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion11", DT_NS, BITS, "b1", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion12", DT_NS, EMPTY, "true", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion13", DT_NS, BITS, "b2", true);
+ n = it3.next();
+ validateDataNode(n, "lfunion14", DT_NS, ENUMERATION, "one", true);
+ n = it3.next();
+ validateDataNode(n, "identityref1", DT_NS, IDENTITYREF, "iden", true);
+ n = it3.next();
+ validateDataNode(n, "identityref2", DT_NS, IDENTITYREF, "pro", true);
+ n = it3.next();
+ validateDataNode(n, "lfenum1", DT_NS, ENUMERATION, "successful exit", true);
+ n = it3.next();
+ validateDataNode(n, "lfenum2", DT_NS, ENUMERATION, "*", true);
+ n = it3.next();
+ validateDataNode(n, "inst-iden", DT_NS, INSTANCE_IDENTIFIER, "/cont", true);
+ validateLeafRef(it3);
+ n = it3.next();
+ validateDataNode(n, "cont3", DT_NS, SINGLE_INSTANCE_NODE,
+ true, null);
+ Iterator<DataNode> it4 = ((InnerNode) n).childNodes().values()
+ .iterator();
+ validateLiftListDatatype(it4);
+ }
+
+ private void validateLiftListDatatype(Iterator<DataNode> it3) {
+ DataNode n = it3.next();
+ validateDataNode(n, "iref1", DT_NS, IDENTITYREF, "val", true);
+ n = it3.next();
+ validateDataNode(n, "iref3", DT_NS, IDENTITYREF, "physical", true);
+ n = it3.next();
+ validateDataNode(n, "llref1", DT_NS, INT8, "108", false);
+ n = it3.next();
+ validateDataNode(n, "llref2", DT_NS, IDENTITYREF, "val", false);
+ n = it3.next();
+ validateDataNode(n, "llref3", DT_NS, ENUMERATION, "one", false);
+ n = it3.next();
+ validateDataNode(n, "llref4", DT_NS, BITS, "b1 b3", false);
+ n = it3.next();
+ validateDataNode(n, "llref5", DT_NS, DECIMAL64,
+ "-92233720368547758.08",
+ false);
+ n = it3.next();
+ validateDataNode(n, "llref6", DT_NS, INT8, "121", false);
+ n = it3.next();
+ validateDataNode(n, "llref7", DT_NS, ENUMERATION, "3.3ms", false);
+ n = it3.next();
+ validateDataNode(n, "llref8", DT_NS, DECIMAL64,
+ "-9223372036000.775808",
+ false);
+ n = it3.next();
+ validateDataNode(n, "llref9", DT_NS, BINARY, "MTExMTExMTE=", false);
+ n = it3.next();
+ validateDataNode(n, "llref10", DT_NS, EMPTY, null, false);
+ n = it3.next();
+ validateDataNode(n, "llref11", DT_NS, EMPTY, null, false);
+ n = it3.next();
+ validateDataNode(n, "llref12", DT_NS, BITS, "b2", false);
+ n = it3.next();
+ validateDataNode(n, "llref13", DT_NS, EMPTY, null, false);
+ n = it3.next();
+ validateDataNode(n, "llref14", DT_NS, BITS, "b1", false);
+ n = it3.next();
+ validateDataNode(n, "llref15", DT_NS, INSTANCE_IDENTIFIER,
+ "/cont/con2", false);
+ n = it3.next();
+ validateDataNode(n, "llref16", DT_NS, IDENTITYREF, "virtual", false);
+ n = it3.next();
+ validateDataNode(n, "llref17", DT_NS, UINT64, "78498522", false);
+ n = it3.next();
+ validateDataNode(n, "llref18", DT_NS, BINARY, "MDEwMTAxMDEw", false);
+ n = it3.next();
+ validateDataNode(n, "llref19", DT_NS, ENUMERATION, "ten", false);
+ n = it3.next();
+ validateDataNode(n, "llref20", DT_NS, STRING, "leaflistref", false);
+ n = it3.next();
+
+ validateDataNode(n, "iref2", DT_NS, IDENTITYREF, "pro", false);
+ n = it3.next();
+ validateDataNode(n, "iref4", DT_NS, IDENTITYREF, "virtual", false);
+ }
+}