[ONOS-4753] Identity/identityref implementation and UT
Change-Id: I40148fa228465555be3bdf410cc294ffc0f34c18
diff --git a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangBase.java b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangBase.java
new file mode 100644
index 0000000..40c2293
--- /dev/null
+++ b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangBase.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * 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.yangutils.datamodel;
+
+import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
+import org.onosproject.yangutils.datamodel.utils.ResolvableStatus;
+
+import java.io.Serializable;
+
+/**
+ * Reference RFC 6020.
+ *
+ * Represents data model node to maintain information defined in YANG base.
+ * The "base" statement, which is optional, takes as an argument a
+ * string that is the name of an existing identity, from which the new
+ * identity is derived. If no "base" statement is present, the identity
+ * is defined from scratch.
+ *
+ * If a prefix is present on the base name, it refers to an identity
+ * defined in the module that was imported with that prefix, or the
+ * local module if the prefix matches the local module's prefix.
+ * Otherwise, an identity with the matching name MUST be defined in the
+ * current module or an included submodule.
+ */
+
+/**
+ * Represents data model node to maintain information defined in YANG base.
+ */
+ public class YangBase implements Resolvable, Serializable {
+
+ private static final long serialVersionUID = 806201693L;
+
+ // YANG node identifier.
+ private YangNodeIdentifier baseIdentifier;
+
+ // Referred identity parent information.
+ private YangIdentity referredIdentity;
+
+ /**
+ * Status of resolution. If completely resolved enum value is "RESOLVED",
+ * if not enum value is "UNRESOLVED", in case reference of grouping/typedef/base/identityref
+ * is added to uses/type/base/identityref but it's not resolved value of enum should be
+ * "INTRA_FILE_RESOLVED".
+ */
+ private ResolvableStatus resolvableStatus;
+
+ // Creates a base type of node.
+ public YangBase() {
+ resolvableStatus = ResolvableStatus.UNRESOLVED;
+ }
+
+ /**
+ * Returns the YANG node identifier.
+ *
+ * @return the YANG node identifier
+ */
+ public YangNodeIdentifier getBaseIdentifier() {
+ return baseIdentifier;
+ }
+
+ /**
+ * Sets the YANG node identifier.
+ *
+ * @param baseIdentifier the YANG node identifier to set
+ */
+ public void setBaseIdentifier(YangNodeIdentifier baseIdentifier) {
+ this.baseIdentifier = baseIdentifier;
+ }
+
+ /**
+ * Returns the parent identity node.
+ *
+ * @return the parent identity node
+ */
+ public YangIdentity getReferredIdentity() {
+ return referredIdentity;
+ }
+
+ /**
+ * Sets the parent identity node.
+ *
+ * @param referredIdentity the parent identity node to set
+ */
+ public void setReferredIdentity(YangIdentity referredIdentity) {
+ this.referredIdentity = referredIdentity;
+ }
+
+ @Override
+ public ResolvableStatus getResolvableStatus() {
+ return resolvableStatus;
+ }
+
+ @Override
+ public void setResolvableStatus(ResolvableStatus resolvableStatus) {
+ this.resolvableStatus = resolvableStatus;
+ }
+
+ @Override
+ public void resolve() throws DataModelException {
+ }
+}