X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-model-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fmodel%2Futil%2FBaseTypes.java;h=e3a5284f8971eb990782be13e1440c08d837791b;hb=53eed9f4e005035353b721c7d12f29057ff1f307;hp=c5c098713e7e8f93f645efd9e7095f8dd109642e;hpb=ed534459faf147c1a876b36d475ec48936e08fe0;p=yangtools.git diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/BaseTypes.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/BaseTypes.java index c5c098713e..e3a5284f89 100644 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/BaseTypes.java +++ b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/BaseTypes.java @@ -7,34 +7,21 @@ */ package org.opendaylight.yangtools.yang.model.util; -import com.google.common.base.Optional; -import com.google.common.base.Preconditions; +import com.google.common.base.Strings; import com.google.common.collect.ImmutableSet; - -import java.net.URI; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; import java.util.Set; - import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.common.QNameModule; -import org.opendaylight.yangtools.yang.model.api.SchemaPath; +import org.opendaylight.yangtools.yang.common.YangConstants; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; /** - * Utility methods and constants to work with built-in YANG types - * - * + * Utility methods and constants to work with built-in YANG types. */ public final class BaseTypes { private BaseTypes() { } - public static final URI BASE_TYPES_NAMESPACE = URI.create("urn:ietf:params:xml:ns:yang:1"); - public static final QNameModule BASE_TYPES_MODULE = QNameModule.create(BASE_TYPES_NAMESPACE, null); - public static final QName BINARY_QNAME = constructQName("binary"); public static final QName BITS_QNAME = constructQName("bits"); public static final QName BOOLEAN_QNAME = constructQName("boolean"); @@ -55,25 +42,26 @@ public final class BaseTypes { public static final QName UINT64_QNAME = constructQName("uint64"); public static final QName UNION_QNAME = constructQName("union"); - private static final Set BUILD_IN_TYPES = ImmutableSet. builder().add(BINARY_QNAME.getLocalName()) // - .add(BITS_QNAME.getLocalName()) // - .add(BOOLEAN_QNAME.getLocalName()) // - .add(DECIMAL64_QNAME.getLocalName()) // - .add(EMPTY_QNAME.getLocalName()) // - .add(ENUMERATION_QNAME.getLocalName()) // - .add(IDENTITYREF_QNAME.getLocalName()) // - .add(INSTANCE_IDENTIFIER_QNAME.getLocalName()) // - .add(INT8_QNAME.getLocalName()) // - .add(INT16_QNAME.getLocalName()) // - .add(INT32_QNAME.getLocalName()) // - .add(INT64_QNAME.getLocalName()) // - .add(LEAFREF_QNAME.getLocalName()) // - .add(STRING_QNAME.getLocalName()) // - .add(UINT8_QNAME.getLocalName()) // - .add(UINT16_QNAME.getLocalName()) // - .add(UINT32_QNAME.getLocalName()) // - .add(UINT64_QNAME.getLocalName()) // - .add(UNION_QNAME.getLocalName()) // + private static final Set BUILT_IN_TYPES = ImmutableSet.builder() + .add(BINARY_QNAME) + .add(BITS_QNAME) + .add(BOOLEAN_QNAME) + .add(DECIMAL64_QNAME) + .add(EMPTY_QNAME) + .add(ENUMERATION_QNAME) + .add(IDENTITYREF_QNAME) + .add(INSTANCE_IDENTIFIER_QNAME) + .add(INT8_QNAME) + .add(INT16_QNAME) + .add(INT32_QNAME) + .add(INT64_QNAME) + .add(LEAFREF_QNAME) + .add(STRING_QNAME) + .add(UINT8_QNAME) + .add(UINT16_QNAME) + .add(UINT32_QNAME) + .add(UINT64_QNAME) + .add(UNION_QNAME) .build(); /** @@ -85,115 +73,35 @@ public final class BaseTypes { * @return built-in base yang type QName. */ public static QName constructQName(final String typeName) { - return QName.create(BASE_TYPES_MODULE, typeName); - } - - /** - * Creates Schema Path from {@link QName}. - * - * @param typeName - * yang type QName - * @return Schema Path from Qname. - * @deprecated Use {@link SchemaPath#create(boolean, QName...)} instead. - */ - @Deprecated - public static SchemaPath schemaPath(final QName typeName) { - return SchemaPath.create(true, typeName); - } - - /** - * Creates Schema Path from List of partial paths defined as Strings, module - * Namespace and module latest Revision Date. - * - * @param actualPath - * List of partial paths - * @param namespace - * Module Namespace - * @param revision - * Revision Date - * @return Schema Path - * - * @deprecated Use {@link SchemaPath#create(Iterable, boolean)} with QNames - * manually constructed. - */ - @Deprecated - public static SchemaPath schemaPath(final List actualPath, final URI namespace, final Date revision) { - if (actualPath == null) { - throw new IllegalArgumentException("The actual path List MUST be specified."); - } - final List pathList = new ArrayList(); - for (final String path : actualPath) { - final QName qname = QName.create(namespace, revision, path); - if (qname != null) { - pathList.add(qname); - } - } - return SchemaPath.create(pathList, true); + return QName.create(YangConstants.RFC6020_YANG_MODULE, typeName).intern(); } /** * Returns true if supplied type is representation of built-in YANG type as * per RFC 6020. * + *

* See package documentation for description of base types. * - * @param type + * @param type A type name * @return true if type is built-in YANG Types. */ public static boolean isYangBuildInType(final String type) { - return BUILD_IN_TYPES.contains(type); + return !Strings.isNullOrEmpty(type) && BUILT_IN_TYPES.contains( + QName.create(YangConstants.RFC6020_YANG_MODULE, type)); } /** - * Returns default instance of built-in for supplied type - * - * See package documentation for description of base build-in types - * with default instance. + * Returns true if supplied type is representation of built-in YANG type as + * per RFC 6020. * - * @param typeName - * @return Returns default instance or {@link Optional#absent()} if default - * instance does not exists + *

+ * See package documentation for description of base types. * + * @param type Type definition + * @return true if type is built-in YANG Types. */ - public static Optional> defaultBaseTypeFor(final String typeName) { - return Optional.> fromNullable(defaultBaseTypeForImpl(typeName)); - } - - private static TypeDefinition defaultBaseTypeForImpl(final String typeName) { - Preconditions.checkNotNull(typeName, "typeName must not be null."); - - if (typeName.startsWith("int")) { - if ("int8".equals(typeName)) { - return Int8.getInstance(); - } else if ("int16".equals(typeName)) { - return Int16.getInstance(); - } else if ("int32".equals(typeName)) { - return Int32.getInstance(); - } else if ("int64".equals(typeName)) { - return Int64.getInstance(); - } - } else if (typeName.startsWith("uint")) { - if ("uint8".equals(typeName)) { - return Uint8.getInstance(); - } else if ("uint16".equals(typeName)) { - return Uint16.getInstance(); - } else if ("uint32".equals(typeName)) { - return Uint32.getInstance(); - } else if ("uint64".equals(typeName)) { - return Uint64.getInstance(); - } - } else if ("string".equals(typeName)) { - return StringType.getInstance(); - } else if ("binary".equals(typeName)) { - return BinaryType.getInstance(); - } else if ("boolean".equals(typeName)) { - return BooleanType.getInstance(); - } else if ("empty".equals(typeName)) { - return EmptyType.getInstance(); - } else if ("instance-identifier".equals(typeName)) { - return InstanceIdentifierType.getInstance(); - } - return null; + public static boolean isYangBuildInType(final TypeDefinition type) { + return type != null && BUILT_IN_TYPES.contains(type.getQName()); } - }