[ONOS-4063 to 68] Intra YANG file Linking Implementation and Intra YANG file Linking Framework
Change-Id: I06e602c351ab54178bf90b8676af71a70e42371f
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangType.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangType.java
index dd3e232..74c7a06 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangType.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangType.java
@@ -49,12 +49,12 @@
*
* @param <T> YANG data type info
*/
-public class YangType<T> implements Parsable {
+public class YangType<T> implements Parsable, Resolvable {
/**
- * YANG data type name.
+ * YANG node identifier.
*/
- private String dataTypeName;
+ private YangNodeIdentifier nodeIdentifier;
/**
* Java package in which the Java type is defined.
@@ -74,9 +74,50 @@
private T dataTypeExtendedInfo;
/**
+ * Effective built-in type, requried in case type of typedef is again a
+ * derived type. This information is to be added during linking.
+ */
+ private YangDataTypes effectiveBuiltInType;
+
+ /**
+ * Effective pattern restriction, requried in case type of typedef is again
+ * a derived type. This information is to be added during linking.
+ */
+ private YangPatternRestriction effectivePatternRestriction;
+
+ /**
+ * Status of resolution. If completely resolved enum value is "RESOLVED",
+ * if not enum value is "UNRESOLVED", in case reference of grouping/typedef
+ * is added to uses/type but it's not resolved value of enum should be
+ * "PARTIALLY_RESOLVED".
+ */
+ private ResolvableStatus resolvableStatus;
+
+ /**
* Default constructor.
*/
public YangType() {
+
+ nodeIdentifier = new YangNodeIdentifier();
+ resolvableStatus = ResolvableStatus.UNRESOLVED;
+ }
+
+ /**
+ * Returns prefix associated with data type name.
+ *
+ * @return prefix associated with data type name
+ */
+ public String getPrefix() {
+ return nodeIdentifier.getPrefix();
+ }
+
+ /**
+ * Set prefix associated with data type name.
+ *
+ * @param prefix prefix associated with data type name
+ */
+ public void setPrefix(String prefix) {
+ nodeIdentifier.setPrefix(prefix);
}
/**
@@ -85,7 +126,7 @@
* @return the name of data type
*/
public String getDataTypeName() {
- return dataTypeName;
+ return nodeIdentifier.getName();
}
/**
@@ -94,7 +135,7 @@
* @param typeName the name to set
*/
public void setDataTypeName(String typeName) {
- dataTypeName = typeName;
+ nodeIdentifier.setName(typeName);
}
/**
@@ -152,6 +193,60 @@
}
/**
+ * Returns node identifier.
+ *
+ * @return node identifier
+ */
+ public YangNodeIdentifier getNodeIdentifier() {
+ return nodeIdentifier;
+ }
+
+ /**
+ * Set node identifier.
+ *
+ * @param nodeIdentifier the node identifier
+ */
+ public void setNodeIdentifier(YangNodeIdentifier nodeIdentifier) {
+ this.nodeIdentifier = nodeIdentifier;
+ }
+
+ /**
+ * Return effective built-in type.
+ *
+ * @return effective built-in type
+ */
+ public YangDataTypes getEffectiveBuiltInType() {
+ return effectiveBuiltInType;
+ }
+
+ /**
+ * Set effective built-in type.
+ *
+ * @param effectiveBuiltInType effective built-in type
+ */
+ public void setEffectiveBuiltInType(YangDataTypes effectiveBuiltInType) {
+ this.effectiveBuiltInType = effectiveBuiltInType;
+ }
+
+ /**
+ * Returns effective pattern restriction.
+ *
+ * @return effective pattern restriction
+ */
+ public YangPatternRestriction getEffectivePatternRestriction() {
+ return effectivePatternRestriction;
+ }
+
+ /**
+ * Set effective pattern restriction.
+ *
+ * @param effectivePatternRestriction effective pattern restriction
+ */
+ public void setEffectivePatternRestriction(YangPatternRestriction effectivePatternRestriction) {
+ this.effectivePatternRestriction = effectivePatternRestriction;
+ }
+
+ /**
* Returns the type of the parsed data.
*
* @return returns TYPE_DATA
@@ -182,4 +277,19 @@
// TODO auto-generated method stub, to be implemented by parser
}
+
+ @Override
+ public ResolvableStatus getResolvableStatus() {
+ return resolvableStatus;
+ }
+
+ @Override
+ public void setResolvableStatus(ResolvableStatus resolvableStatus) {
+ this.resolvableStatus = resolvableStatus;
+ }
+
+ @Override
+ public void resolve() {
+ //TODO: implement the method.
+ }
}