BUG-1485: Create LengthGenerator
[mdsal.git] / code-generator / binding-java-api-generator / src / main / java / org / opendaylight / yangtools / sal / java / api / generator / AbstractRangeGenerator.java
index 31c651a059a847777d2ec8ca0b7a4f605da1aafe..aaf77677086c6f240a7c6c9b9adb3bf330887305 100644 (file)
@@ -14,8 +14,6 @@ import java.util.Collection;
 import java.util.Map;
 import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.sal.binding.model.api.ConcreteType;
-import org.opendaylight.yangtools.sal.binding.model.api.GeneratedProperty;
-import org.opendaylight.yangtools.sal.binding.model.api.GeneratedTransferObject;
 import org.opendaylight.yangtools.sal.binding.model.api.Type;
 import org.opendaylight.yangtools.yang.model.api.type.RangeConstraint;
 import org.slf4j.Logger;
@@ -46,33 +44,8 @@ abstract class AbstractRangeGenerator<T extends Number & Comparable<T>> {
         this.type = Preconditions.checkNotNull(typeClass);
     }
 
-    // We need to walk up the GTO tree to get the root and then return its 'value' property
-    private static Type javaTypeForGTO(final GeneratedTransferObject gto) {
-        GeneratedTransferObject rootGto = gto;
-        while (rootGto.getSuperType() != null) {
-            rootGto = rootGto.getSuperType();
-        }
-
-        LOG.debug("Root GTO of {} is {}", rootGto, gto);
-        for (GeneratedProperty s : rootGto.getProperties()) {
-            if ("value".equals(s.getName())) {
-                return s.getReturnType();
-            }
-        }
-
-        throw new IllegalArgumentException(String.format("Failed to resolve GTO {} root {} to a Java type, properties are {}", gto, rootGto));
-    }
-
     static AbstractRangeGenerator<?> forType(@Nonnull final Type type) {
-        final Type javaType;
-        if (type instanceof GeneratedTransferObject) {
-            javaType = javaTypeForGTO((GeneratedTransferObject) type);
-            LOG.debug("Resolved GTO {} to concrete type {}", type, javaType);
-        } else {
-            javaType = type;
-        }
-
-        Preconditions.checkArgument(javaType instanceof ConcreteType, "Unsupported type %s", type);
+        final ConcreteType javaType = TypeUtils.getBaseYangType(type);
         return GENERATORS.get(javaType.getFullyQualifiedName());
     }