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=18e58d41a5d14a8d52c2f4b993c1850feaeb1807;hb=e704e6a6d1cc4db7ac1e1f53b54ec3bf51aaecc3;hp=c5c098713e7e8f93f645efd9e7095f8dd109642e;hpb=10724824b49dc367919632888f698d061e345686;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..18e58d41a5 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 @@ -9,17 +9,13 @@ 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; /** @@ -32,8 +28,16 @@ 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); + /** + * @deprecated Use {@link YangConstants#RFC6020_YANG_NAMESPACE} instead. To be removed in Boron release. + */ + @Deprecated + public static final URI BASE_TYPES_NAMESPACE = YangConstants.RFC6020_YANG_NAMESPACE; + /** + * @deprecated Use {@link YangConstants#RFC6020_YANG_MODULE} instead. To be removed in Boron release. + */ + @Deprecated + public static final QNameModule BASE_TYPES_MODULE = YangConstants.RFC6020_YANG_MODULE; public static final QName BINARY_QNAME = constructQName("binary"); public static final QName BITS_QNAME = constructQName("bits"); @@ -55,25 +59,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,50 +90,23 @@ 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); + return QName.create(YangConstants.RFC6020_YANG_MODULE, typeName).intern(); } /** - * Creates Schema Path from List of partial paths defined as Strings, module - * Namespace and module latest Revision Date. + * Returns true if supplied type is representation of built-in YANG type as + * per RFC 6020. * - * @param actualPath - * List of partial paths - * @param namespace - * Module Namespace - * @param revision - * Revision Date - * @return Schema Path + * See package documentation for description of base types. * - * @deprecated Use {@link SchemaPath#create(Iterable, boolean)} with QNames - * manually constructed. + * @param type + * @return true if type is built-in YANG Types. */ - @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); - } + public static boolean isYangBuildInType(final String type) { + if (Strings.isNullOrEmpty(type)) { + return false; } - return SchemaPath.create(pathList, true); + return BUILT_IN_TYPES.contains(QName.create(YangConstants.RFC6020_YANG_MODULE, type)); } /** @@ -140,8 +118,11 @@ public final class BaseTypes { * @param type * @return true if type is built-in YANG Types. */ - public static boolean isYangBuildInType(final String type) { - return BUILD_IN_TYPES.contains(type); + public static boolean isYangBuildInType(final TypeDefinition type) { + if(type == null) { + return false; + } + return BUILT_IN_TYPES.contains(type.getQName()); } /** @@ -154,11 +135,14 @@ public final class BaseTypes { * @return Returns default instance or {@link Optional#absent()} if default * instance does not exists * + * @deprecated Use parser-specific lookup tables. */ + @Deprecated public static Optional> defaultBaseTypeFor(final String typeName) { return Optional.> fromNullable(defaultBaseTypeForImpl(typeName)); } + @Deprecated private static TypeDefinition defaultBaseTypeForImpl(final String typeName) { Preconditions.checkNotNull(typeName, "typeName must not be null.");