[ONOS-4350] Inter Jar dependency implementation and code restructuring.
Change-Id: Iacac75e4187aed93ce1754c170a9c19707e5b8c3
diff --git a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/utils/YangConstructType.java b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/utils/YangConstructType.java
new file mode 100644
index 0000000..715fb76
--- /dev/null
+++ b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/utils/YangConstructType.java
@@ -0,0 +1,532 @@
+/*
+ * 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.utils;
+
+/**
+ * Represents ENUM to represent the type of data in parse tree.
+ */
+public enum YangConstructType {
+ /**
+ * Identifies the module parsed data.
+ */
+ MODULE_DATA,
+
+ /**
+ * Identifies the sub module parsed data.
+ */
+ SUB_MODULE_DATA,
+
+ /**
+ * Identifies the typedef parsed data.
+ */
+ TYPEDEF_DATA,
+
+ /**
+ * Identifies the type parsed data.
+ */
+ TYPE_DATA,
+
+ /**
+ * Identifies the choice parsed data.
+ */
+ CHOICE_DATA,
+
+ /**
+ * Identifies the case parsed data.
+ */
+ CASE_DATA,
+
+ /**
+ * Identifies the YANG enumeration parsed data.
+ */
+ ENUMERATION_DATA,
+
+ /**
+ * Identifies the grouping parsed data.
+ */
+ GROUPING_DATA,
+
+ /**
+ * Identifies the uses parsed data.
+ */
+ USES_DATA,
+
+ /**
+ * Identifies the augment parsed data.
+ */
+ AUGMENT_DATA,
+
+ /**
+ * Identifies the container parsed data.
+ */
+ CONTAINER_DATA,
+
+ /**
+ * Identifies the YANG list parsed data.
+ */
+ LIST_DATA,
+
+ /**
+ * Identifies the YANG belongs-to parsed data.
+ */
+ BELONGS_TO_DATA,
+
+ /**
+ * Identifies the YANG bit parsed data.
+ */
+ BIT_DATA,
+
+ /**
+ * Identifies the YANG bits parsed data.
+ */
+ BITS_DATA,
+
+ /**
+ * Identifies the YANG enum parsed data.
+ */
+ ENUM_DATA,
+
+ /**
+ * Identifies the YANG import parsed data.
+ */
+ IMPORT_DATA,
+
+ /**
+ * Identifies the YANG include parsed data.
+ */
+ INCLUDE_DATA,
+
+ /**
+ * Identifies the YANG leaf parsed data.
+ */
+ LEAF_DATA,
+
+ /**
+ * Identifies the YANG leaf list parsed data.
+ */
+ LEAF_LIST_DATA,
+
+ /**
+ * Identifies the YANG must parsed data.
+ */
+ MUST_DATA,
+
+ /**
+ * Identifies the YANG revision parsed data.
+ */
+ REVISION_DATA,
+
+ /**
+ * Identifies the YANG revision date parsed data.
+ */
+ REVISION_DATE_DATA,
+
+ /**
+ * Identifies the YANG namespace parsed data.
+ */
+ NAMESPACE_DATA,
+
+ /**
+ * Identifies the YANG contact parsed data.
+ */
+ CONTACT_DATA,
+
+ /**
+ * Identifies the YANG config parsed data.
+ */
+ CONFIG_DATA,
+
+ /**
+ * Identifies the YANG description parsed data.
+ */
+ DESCRIPTION_DATA,
+
+ /**
+ * Identifies the YANG key parsed data.
+ */
+ KEY_DATA,
+
+ /**
+ * Identifies the YANG mandatory parsed data.
+ */
+ MANDATORY_DATA,
+
+ /**
+ * Identifies the YANG max element parsed data.
+ */
+ MAX_ELEMENT_DATA,
+
+ /**
+ * Identifies the YANG min element parsed data.
+ */
+ MIN_ELEMENT_DATA,
+
+ /**
+ * Identifies the YANG presence element parsed data.
+ */
+ PRESENCE_DATA,
+
+ /**
+ * Identifies the YANG reference element parsed data.
+ */
+ REFERENCE_DATA,
+
+ /**
+ * Identifies the YANG status element parsed data.
+ */
+ STATUS_DATA,
+
+ /**
+ * Identifies the YANG units element parsed data.
+ */
+ UNITS_DATA,
+
+ /**
+ * Identifies the YANG version element parsed data.
+ */
+ VERSION_DATA,
+
+ /**
+ * Identifies the YANG base element parsed data.
+ */
+ YANGBASE_DATA,
+
+ /**
+ * Identifies the YANG prefix element parsed data.
+ */
+ PREFIX_DATA,
+
+ /**
+ * Identifies the YANG default element parsed data.
+ */
+ DEFAULT_DATA,
+
+ /**
+ * Identifies the YANG value element parsed data.
+ */
+ VALUE_DATA,
+
+ /**
+ * Identifies the YANG organization parsed data.
+ */
+ ORGANIZATION_DATA,
+
+ /**
+ * Identifies the YANG position element parsed data.
+ */
+ POSITION_DATA,
+
+ /**
+ * Identifies the YANG data definition statements.
+ */
+ DATA_DEF_DATA,
+
+ /**
+ * Identifies the YANG union element parsed data.
+ */
+ UNION_DATA,
+
+ /**
+ * Identifies the YANG notification element parsed data.
+ */
+ NOTIFICATION_DATA,
+
+ /**
+ * Identifies the YANG when element parsed data.
+ */
+ WHEN_DATA,
+
+ /**
+ * Identifies the YANG input element parsed data.
+ */
+ INPUT_DATA,
+
+ /**
+ * Identifies the YANG output element parsed data.
+ */
+ OUTPUT_DATA,
+
+ /**
+ * Identifies the YANG rpc element parsed data.
+ */
+ RPC_DATA,
+
+ /**
+ * Identifies the YANG short case element parsed data.
+ */
+ SHORT_CASE_DATA,
+
+ /**
+ * Identifies the derived data type.
+ */
+ DERIVED,
+
+ /**
+ * Identifies the YANG range element parsed data.
+ */
+ RANGE_DATA,
+
+ /**
+ * Identifies the YANG length element parsed data.
+ */
+ LENGTH_DATA,
+
+ /**
+ * Identifies the YANG pattern element parsed data.
+ */
+ PATTERN_DATA,
+
+ /**
+ * Identifies the YANG extension element parsed data.
+ */
+ EXTENSION_DATA,
+
+ /**
+ * Identifies the YANG identity element parsed data.
+ */
+ IDENTITY_DATA,
+
+ /**
+ * Identifies the YANG base element parsed data.
+ */
+ BASE_DATA,
+
+ /**
+ * Identifies the YANG feature element parsed data.
+ */
+ FEATURE_DATA,
+
+ /**
+ * Identifies the YANG if-feature element parsed data.
+ */
+ IF_FEATURE_DATA,
+
+ /**
+ * Identifies the YANG path element parsed data.
+ */
+ PATH_DATA,
+
+ /**
+ * Identifies the YANG require-instance element parsed data.
+ */
+ REQUIRE_INSTANCE_DATA,
+
+ /**
+ * Identifies the YANG ordered-by element parsed data.
+ */
+ ORDERED_BY_DATA,
+
+ /**
+ * Identifies the YANG error-message element parsed data.
+ */
+ ERROR_MESSAGE_DATA,
+
+ /**
+ * Identifies the YANG error-app-tag element parsed data.
+ */
+ ERROR_APP_TAG_DATA,
+
+ /**
+ * Identifies the YANG unique element parsed data.
+ */
+ UNIQUE_DATA,
+
+ /**
+ * Identifies the YANG refine element parsed data.
+ */
+ REFINE_DATA,
+
+ /**
+ * Identifies the YANG leafref element parsed data.
+ */
+ LEAFREF_DATA,
+
+ /**
+ * Identifies the YANG identityref element parsed data.
+ */
+ IDENTITYREF_DATA,
+
+ /**
+ * Identifies the YANG instance identifier element parsed data.
+ */
+ INSTANCE_IDENTIFIER_DATA,
+
+ /**
+ * Identifies the YANG deviation element parsed data.
+ */
+ DEVIATION_DATA,
+
+ /**
+ * Identifies the YANG anyxml element parsed data.
+ */
+ ANYXML_DATA;
+
+ /**
+ * Returns the YANG construct keyword corresponding to enum values.
+ *
+ * @param yangConstructType enum value for parsable data type.
+ * @return YANG construct keyword.
+ */
+ public static String getYangConstructType(YangConstructType yangConstructType) {
+
+ switch (yangConstructType) {
+ case MODULE_DATA:
+ return "module";
+ case SUB_MODULE_DATA:
+ return "submodule";
+ case TYPEDEF_DATA:
+ return "typedef";
+ case TYPE_DATA:
+ return "type";
+ case CHOICE_DATA:
+ return "choice";
+ case CASE_DATA:
+ return "case";
+ case ENUMERATION_DATA:
+ return "enumeration";
+ case GROUPING_DATA:
+ return "grouping";
+ case USES_DATA:
+ return "uses";
+ case AUGMENT_DATA:
+ return "augment";
+ case CONTAINER_DATA:
+ return "container";
+ case LIST_DATA:
+ return "list";
+ case BELONGS_TO_DATA:
+ return "belongs-to";
+ case BIT_DATA:
+ return "bit";
+ case BITS_DATA:
+ return "bits";
+ case ENUM_DATA:
+ return "enum";
+ case IMPORT_DATA:
+ return "import";
+ case INCLUDE_DATA:
+ return "include";
+ case LEAF_DATA:
+ return "leaf";
+ case LEAF_LIST_DATA:
+ return "leaf-list";
+ case MUST_DATA:
+ return "must";
+ case REVISION_DATA:
+ return "revision";
+ case REVISION_DATE_DATA:
+ return "revision-date";
+ case NAMESPACE_DATA:
+ return "namespace";
+ case CONTACT_DATA:
+ return "contact";
+ case CONFIG_DATA:
+ return "config";
+ case DESCRIPTION_DATA:
+ return "description";
+ case KEY_DATA:
+ return "key";
+ case MANDATORY_DATA:
+ return "mandatory";
+ case MAX_ELEMENT_DATA:
+ return "max-elements";
+ case MIN_ELEMENT_DATA:
+ return "min-elements";
+ case PRESENCE_DATA:
+ return "presence";
+ case REFERENCE_DATA:
+ return "reference";
+ case STATUS_DATA:
+ return "status";
+ case UNITS_DATA:
+ return "units";
+ case VERSION_DATA:
+ return "version";
+ case YANGBASE_DATA:
+ return "yangbase";
+ case PREFIX_DATA:
+ return "prefix";
+ case ORGANIZATION_DATA:
+ return "organization";
+ case VALUE_DATA:
+ return "value";
+ case POSITION_DATA:
+ return "position";
+ case DEFAULT_DATA:
+ return "default";
+ case DATA_DEF_DATA:
+ return "data-def-substatements";
+ case WHEN_DATA:
+ return "when";
+ case INPUT_DATA:
+ return "input";
+ case OUTPUT_DATA:
+ return "ouput";
+ case RPC_DATA:
+ return "rpc";
+ case SHORT_CASE_DATA:
+ return "short-case";
+ case DERIVED:
+ return "derived";
+ case NOTIFICATION_DATA:
+ return "notification";
+ case UNION_DATA:
+ return "union";
+ case RANGE_DATA:
+ return "range";
+ case LENGTH_DATA:
+ return "length";
+ case PATTERN_DATA:
+ return "pattern";
+ case EXTENSION_DATA:
+ return "extension";
+ case IDENTITY_DATA:
+ return "identity";
+ case BASE_DATA:
+ return "base";
+ case FEATURE_DATA:
+ return "feature";
+ case IF_FEATURE_DATA:
+ return "if-feature";
+ case PATH_DATA:
+ return "path";
+ case REQUIRE_INSTANCE_DATA:
+ return "require-instance";
+ case ORDERED_BY_DATA:
+ return "ordered-by";
+ case ERROR_MESSAGE_DATA:
+ return "error-message";
+ case ERROR_APP_TAG_DATA:
+ return "error-app-tag";
+ case UNIQUE_DATA:
+ return "unique";
+ case REFINE_DATA:
+ return "refine";
+ case LEAFREF_DATA:
+ return "leafref";
+ case IDENTITYREF_DATA:
+ return "identityref";
+ case INSTANCE_IDENTIFIER_DATA:
+ return "instance-identifier";
+ case DEVIATION_DATA:
+ return "deviation";
+ case ANYXML_DATA:
+ return "anyxml";
+ default:
+ return "yang";
+ }
+ }
+}