Fixed SchemaPath resolution for base YANG types.
[controller.git] / opendaylight / sal / yang-prototype / yang / yang-model-util / src / main / java / org / opendaylight / controller / yang / model / util / YangTypesConverter.java
index f3db85cf9a0242ab0f90d2753e0d1408368e4b36..6d41321bfd0cb5042c150f3f77779e9f68cc344a 100644 (file)
@@ -9,39 +9,16 @@ package org.opendaylight.controller.yang.model.util;
 \r
 import java.net.URI;\r
 import java.util.Date;\r
-import java.util.HashMap;\r
 import java.util.HashSet;\r
 import java.util.List;\r
-import java.util.Map;\r
 import java.util.Set;\r
 \r
-import org.opendaylight.controller.yang.common.QName;\r
 import org.opendaylight.controller.yang.model.api.TypeDefinition;\r
-import org.opendaylight.controller.yang.model.api.type.BinaryTypeDefinition;\r
-import org.opendaylight.controller.yang.model.api.type.BitsTypeDefinition;\r
-import org.opendaylight.controller.yang.model.api.type.BooleanTypeDefinition;\r
-import org.opendaylight.controller.yang.model.api.type.EmptyTypeDefinition;\r
-import org.opendaylight.controller.yang.model.api.type.InstanceIdentifierTypeDefinition;\r
 \r
 public class YangTypesConverter {\r
-\r
-    private static final Map<String, TypeDefinition<? extends TypeDefinition<?>>> baseYangTypeMap = new HashMap<String, TypeDefinition<? extends TypeDefinition<?>>>();\r
     private static final Set<String> baseYangTypes = new HashSet<String>();\r
 \r
-    private static final TypeDefinition<BinaryTypeDefinition> BINARY = new BinaryType();\r
-    private static final TypeDefinition<BitsTypeDefinition> BITS = new BitsType();\r
-    private static final TypeDefinition<BooleanTypeDefinition> BOOLEAN_TYPE = new BooleanType();\r
-    private static final TypeDefinition<EmptyTypeDefinition> EMPTY_TYPE = new EmptyType();\r
-    private static final TypeDefinition<InstanceIdentifierTypeDefinition> INST_ID_TYPE = new InstanceIdentifier(\r
-            null, true);\r
-\r
     static {\r
-        baseYangTypeMap.put("binary", BINARY);\r
-        baseYangTypeMap.put("bits", BITS);\r
-        baseYangTypeMap.put("boolean", BOOLEAN_TYPE);\r
-        baseYangTypeMap.put("empty", EMPTY_TYPE);\r
-        baseYangTypeMap.put("instance-identifier", INST_ID_TYPE);\r
-\r
         baseYangTypes.add("binary");\r
         baseYangTypes.add("bits");\r
         baseYangTypes.add("boolean");\r
@@ -67,40 +44,45 @@ public class YangTypesConverter {
         return baseYangTypes.contains(type);\r
     }\r
 \r
-    public static TypeDefinition<?> javaTypeForBaseYangType(QName typeQName) {\r
-        TypeDefinition<?> type = baseYangTypeMap.get(typeQName.getLocalName());\r
-        return type;\r
-    }\r
-\r
     public static TypeDefinition<?> javaTypeForBaseYangType(\r
             List<String> actualPath, URI namespace, Date revision,\r
             String typeName) {\r
+        TypeDefinition<?> type = null;\r
 \r
         if (typeName.startsWith("int")) {\r
             if (typeName.equals("int8")) {\r
-                return new Int8(actualPath, namespace, revision);\r
+                type = new Int8(actualPath, namespace, revision);\r
             } else if (typeName.equals("int16")) {\r
-                return new Int16(actualPath, namespace, revision);\r
+                type = new Int16(actualPath, namespace, revision);\r
             } else if (typeName.equals("int32")) {\r
-                return new Int32(actualPath, namespace, revision);\r
+                type = new Int32(actualPath, namespace, revision);\r
             } else if (typeName.equals("int64")) {\r
-                return new Int64(actualPath, namespace, revision);\r
+                type = new Int64(actualPath, namespace, revision);\r
             }\r
         } else if (typeName.startsWith("uint")) {\r
             if (typeName.equals("uint8")) {\r
-                return new Uint8(actualPath, namespace, revision);\r
+                type = new Uint8(actualPath, namespace, revision);\r
             } else if (typeName.equals("uint16")) {\r
-                return new Uint16(actualPath, namespace, revision);\r
+                type = new Uint16(actualPath, namespace, revision);\r
             } else if (typeName.equals("uint32")) {\r
-                return new Uint32(actualPath, namespace, revision);\r
+                type = new Uint32(actualPath, namespace, revision);\r
             } else if (typeName.equals("uint64")) {\r
-                return new Uint64(actualPath, namespace, revision);\r
+                type = new Uint64(actualPath, namespace, revision);\r
             }\r
-        } else if (typeName.equals("string")) {\r
-            return new StringType(actualPath, namespace, revision);\r
+        } else if ("string".equals(typeName)) {\r
+            type = new StringType(actualPath, namespace, revision);\r
+        } else if("binary".equals(typeName)) {\r
+            type = new BinaryType(actualPath, namespace, revision);\r
+        } else if("bits".equals(typeName)) {\r
+            type = new BitsType(actualPath, namespace, revision);\r
+        } else if("boolean".equals(typeName)) {\r
+            type = new BooleanType(actualPath, namespace, revision);\r
+        } else if("empty".equals(typeName)) {\r
+            type = new EmptyType(actualPath, namespace, revision);\r
+        } else if("instance-identifier".equals(typeName)) {\r
+            type = new InstanceIdentifier(actualPath, namespace, revision, null, true);\r
         }\r
 \r
-        TypeDefinition<?> type = baseYangTypeMap.get(typeName);\r
         return type;\r
     }\r
 \r