blob: efe56206d393ec7df6c92dd083fde895d0e090bf [file] [log] [blame]
/*
* 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 decimal64 parsed data.
*/
DECIMAL64_DATA,
/**
* Identifies the YANG fraction-digits parsed data.
*/
FRACTION_DIGITS_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 DECIMAL64_DATA:
return "decimal64";
case FRACTION_DIGITS_DATA:
return "fraction-digits";
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";
}
}
}