Remove TypeProvider interface 95/96895/1
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 15 Jul 2021 11:34:07 +0000 (13:34 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 15 Jul 2021 11:34:07 +0000 (13:34 +0200)
We have only a single implementation of this interface, remove it
by collapsing it into AbstractTypeProvider.

Change-Id: I3e8999327a0ddbd7e632099fe1e282f6432bc960
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/yang/types/AbstractTypeProvider.java
binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/yang/types/TypeProvider.java [deleted file]
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/yang/types/Bug4621.java
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/yang/types/TypeProviderTest.java

index 7678e3a2941f3900fe4f0790b303804d6ed858ac..d1ce0888c97e0f9a639a81d58210ae39e0f7eda1 100644 (file)
@@ -70,7 +70,7 @@ import org.opendaylight.yangtools.yang.model.spi.ModuleDependencySort;
 
 // FIXME: remove this class
 @Deprecated(forRemoval = true)
-abstract class AbstractTypeProvider implements TypeProvider {
+abstract class AbstractTypeProvider {
     private static final JavaTypeName DEPRECATED_ANNOTATION = JavaTypeName.create(Deprecated.class);
     private static final CharMatcher DASH_COLON_MATCHER = CharMatcher.anyOf("-:");
 
@@ -124,7 +124,41 @@ abstract class AbstractTypeProvider implements TypeProvider {
         return additionalTypes;
     }
 
-    @Override
+    /**
+     * Resolve of YANG Type Definition to it's java counter part. If the Type Definition contains one of YANG primitive
+     * types the method will return {@code java.lang.} counterpart. (For example if YANG type is int32 the Java
+     * counterpart is {@link Integer}). In case that Type Definition contains extended type defined via YANG typedef
+     * statement the method SHOULD return Generated Type or Generated Transfer Object if that Type is correctly
+     * referenced to resolved imported YANG module.
+     *
+     * <p>
+     * The method will return <code>null</code> value in situations that TypeDefinition can't be resolved (either due
+     * to missing YANG import or incorrectly specified type).
+     *
+     * <p>
+     * {@code leafref} resolution for relative paths has two models of operation: lenient and strict. This is needed to
+     * handle the case where a grouping leaf's path points outside of the grouping tree. In such a case we cannot
+     * completely determine the correct type and need to fallback to {@link Object}.
+     *
+     * @param type Type Definition to resolve from
+     * @param lenientRelativeLeafrefs treat relative leafrefs leniently
+     * @return Resolved Type
+     */
+    public Type javaTypeForSchemaDefinitionType(final TypeDefinition<?> type, final SchemaNode parentNode) {
+        return javaTypeForSchemaDefinitionType(type, parentNode, null);
+    }
+
+    /**
+     * Converts schema definition type <code>typeDefinition</code> to JAVA <code>Type</code>.
+     *
+     * @param typeDefinition type definition which is converted to JAVA type
+     * @throws IllegalArgumentException
+     *             <ul>
+     *             <li>if <code>typeDefinition</code> equal null</li>
+     *             <li>if Qname of <code>typeDefinition</code> equal null</li>
+     *             <li>if name of <code>typeDefinition</code> equal null</li>
+     *             </ul>
+     */
     public Type javaTypeForSchemaDefinitionType(final TypeDefinition<?> typeDefinition, final SchemaNode parentNode,
             final Restrictions restrictions) {
         throw new UnsupportedOperationException();
diff --git a/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/yang/types/TypeProvider.java b/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/yang/types/TypeProvider.java
deleted file mode 100644 (file)
index 0e82233..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.mdsal.binding.yang.types;
-
-import org.opendaylight.mdsal.binding.model.api.Restrictions;
-import org.opendaylight.mdsal.binding.model.api.Type;
-import org.opendaylight.yangtools.yang.model.api.SchemaNode;
-import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
-
-interface TypeProvider {
-    /**
-     * Resolve of YANG Type Definition to it's java counter part. If the Type Definition contains one of YANG primitive
-     * types the method will return {@code java.lang.} counterpart. (For example if YANG type is int32 the Java
-     * counterpart is {@link Integer}). In case that Type Definition contains extended type defined via YANG typedef
-     * statement the method SHOULD return Generated Type or Generated Transfer Object if that Type is correctly
-     * referenced to resolved imported YANG module.
-     *
-     * <p>
-     * The method will return <code>null</code> value in situations that TypeDefinition can't be resolved (either due
-     * to missing YANG import or incorrectly specified type).
-     *
-     * <p>
-     * {@code leafref} resolution for relative paths has two models of operation: lenient and strict. This is needed to
-     * handle the case where a grouping leaf's path points outside of the grouping tree. In such a case we cannot
-     * completely determine the correct type and need to fallback to {@link Object}.
-     *
-     * @param type Type Definition to resolve from
-     * @param lenientRelativeLeafrefs treat relative leafrefs leniently
-     * @return Resolved Type
-     */
-    default Type javaTypeForSchemaDefinitionType(final TypeDefinition<?> type, final SchemaNode parentNode) {
-        return javaTypeForSchemaDefinitionType(type, parentNode, null);
-    }
-
-    /**
-     * Converts schema definition type <code>typeDefinition</code> to JAVA <code>Type</code>.
-     *
-     * @param typeDefinition type definition which is converted to JAVA type
-     * @throws IllegalArgumentException
-     *             <ul>
-     *             <li>if <code>typeDefinition</code> equal null</li>
-     *             <li>if Qname of <code>typeDefinition</code> equal null</li>
-     *             <li>if name of <code>typeDefinition</code> equal null</li>
-     *             </ul>
-     */
-    Type javaTypeForSchemaDefinitionType(TypeDefinition<?> type, SchemaNode parentNode, Restrictions restrictions);
-}
index 4914914d87d88abd39e4951763f74344590cfa22..65bc201e5b8cc5c12f4b4575e8e7e4b8347ad349 100644 (file)
@@ -27,7 +27,7 @@ public class Bug4621 {
     public void bug4621test() {
         final EffectiveModelContext schemaContext = YangParserTestUtils.parseYangResource("/bug4621.yang");
         final Module moduleValid = schemaContext.findModules(XMLNamespace.of("foo")).iterator().next();
-        final TypeProvider typeProvider = new RuntimeTypeProvider(schemaContext);
+        final AbstractTypeProvider typeProvider = new RuntimeTypeProvider(schemaContext);
 
         final QName listNode = QName.create(moduleValid.getQNameModule(), "neighbor");
         final QName leafrefNode = QName.create(moduleValid.getQNameModule(), "neighbor2-id");
index d8f9b7ef177f2a9eac46fc0690e91c480390e2ad..1bed451c37b61346fbd7a38fe2a7cc8d715c2b24 100644 (file)
@@ -109,7 +109,7 @@ public class TypeProviderTest {
 
     @Test
     public void javaTypeForSchemaDefinitionExtTypeTest() {
-        final TypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
+        final AbstractTypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
         final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "foo",
             "yang-int8-type");
 
@@ -128,7 +128,7 @@ public class TypeProviderTest {
 
     @Test
     public void javaTypeForSchemaDefinitionRestrictedExtTypeTest() {
-        final TypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
+        final AbstractTypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
         final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "foo",
             "restricted-int8-type");
 
@@ -186,7 +186,7 @@ public class TypeProviderTest {
     @Ignore
     @Test
     public void bug1862RestrictedTypedefTransformationTest() {
-        final TypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
+        final AbstractTypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
         final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "foo",
             "bug-1862-restricted-typedef");
 
@@ -200,7 +200,7 @@ public class TypeProviderTest {
 
     @Test
     public void javaTypeForSchemaDefinitionEnumExtTypeTest() {
-        final TypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
+        final AbstractTypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
         LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "foo", "resolve-enum-leaf");
         TypeDefinition<?> leafType = leaf.getType();
         Type result = provider.javaTypeForSchemaDefinitionType(leafType, leaf);
@@ -227,7 +227,7 @@ public class TypeProviderTest {
 
     @Test
     public void javaTypeForSchemaDefinitionLeafrefExtTypeTest() {
-        final TypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
+        final AbstractTypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
         LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "bar", "leafref-value");
         TypeDefinition<?> leafType = leaf.getType();
         final Type leafrefResolvedType1 = provider.javaTypeForSchemaDefinitionType(leafType, leaf);
@@ -291,7 +291,7 @@ public class TypeProviderTest {
 
     @Test
     public void javaTypeForSchemaDefinitionConditionalLeafrefTest() {
-        final TypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
+        final AbstractTypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
         final Module module = resolveModule("test-type-provider-b");
 
         final QName leafrefNode = QName.create(module.getQNameModule(), "conditional-leafref");
@@ -309,7 +309,7 @@ public class TypeProviderTest {
 
     @Test(expected = IllegalArgumentException.class)
     public void javaTypeForSchemaDefinitionInvalidLeafrefPathTest() {
-        final TypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
+        final AbstractTypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
         final Module module = resolveModule("test-type-provider-b");
 
         final QName leafrefNode = QName.create(module.getQNameModule(), "unreslovable-leafref");
@@ -323,7 +323,7 @@ public class TypeProviderTest {
 
     @Test
     public void javaTypeForSchemaDefinitionIdentityrefExtTypeTest() {
-        final TypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
         final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "foo", "crypto");
         final TypeDefinition<?> leafType = leaf.getType();
 
@@ -334,7 +334,7 @@ public class TypeProviderTest {
 
     @Test
     public void javaTypeForSchemaDefinitionForExtUnionWithSimpleTypesTest() {
-        final TypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
         final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "use-of-unions",
             "simple-int-types-union");
         final TypeDefinition<?> leafType = leaf.getType();
@@ -348,7 +348,7 @@ public class TypeProviderTest {
 
     @Test
     public void javaTypeForSchemaDefinitionForExtComplexUnionWithInnerUnionTypesTest() {
-        final TypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
         final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "use-of-unions",
             "complex-union");
         final TypeDefinition<?> leafType = leaf.getType();
@@ -362,7 +362,7 @@ public class TypeProviderTest {
 
     @Test
     public void javaTypeForSchemaDefinitionForExtUnionWithInnerUnionAndSimpleTypeTest() {
-        final TypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
         final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "use-of-unions",
             "complex-string-int-union");
         final TypeDefinition<?> leafType = leaf.getType();