Refactored base yang-java types.
[yangtools.git] / yang / yang-model-util / src / main / java / org / opendaylight / yangtools / yang / model / util / YangTypesConverter.java
1 /*\r
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 package org.opendaylight.yangtools.yang.model.util;\r
9 \r
10 import java.util.HashSet;\r
11 import java.util.Set;\r
12 \r
13 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;\r
14 \r
15 public final class YangTypesConverter {\r
16     private static final Set<String> baseYangTypes = new HashSet<String>();\r
17 \r
18     static {\r
19         baseYangTypes.add("binary");\r
20         baseYangTypes.add("bits");\r
21         baseYangTypes.add("boolean");\r
22         baseYangTypes.add("decimal64");\r
23         baseYangTypes.add("empty");\r
24         baseYangTypes.add("enumeration");\r
25         baseYangTypes.add("identityref");\r
26         baseYangTypes.add("instance-identifier");\r
27         baseYangTypes.add("int8");\r
28         baseYangTypes.add("int16");\r
29         baseYangTypes.add("int32");\r
30         baseYangTypes.add("int64");\r
31         baseYangTypes.add("leafref");\r
32         baseYangTypes.add("string");\r
33         baseYangTypes.add("uint8");\r
34         baseYangTypes.add("uint16");\r
35         baseYangTypes.add("uint32");\r
36         baseYangTypes.add("uint64");\r
37         baseYangTypes.add("union");\r
38     }\r
39 \r
40     public static boolean isBaseYangType(String type) {\r
41         return baseYangTypes.contains(type);\r
42     }\r
43 \r
44     public static TypeDefinition<?> javaTypeForBaseYangType(String typeName) {\r
45         TypeDefinition<?> type = null;\r
46 \r
47         if (typeName.startsWith("int")) {\r
48             if ("int8".equals(typeName)) {\r
49                 type = Int8.getInstance();\r
50             } else if ("int16".equals(typeName)) {\r
51                 type = Int16.getInstance();\r
52             } else if ("int32".equals(typeName)) {\r
53                 type = Int32.getInstance();\r
54             } else if ("int64".equals(typeName)) {\r
55                 type = Int64.getInstance();\r
56             }\r
57         } else if (typeName.startsWith("uint")) {\r
58             if ("uint8".equals(typeName)) {\r
59                 type = Uint8.getInstance();\r
60             } else if ("uint16".equals(typeName)) {\r
61                 type = Uint16.getInstance();\r
62             } else if ("uint32".equals(typeName)) {\r
63                 type = Uint32.getInstance();\r
64             } else if ("uint64".equals(typeName)) {\r
65                 type = Uint64.getInstance();\r
66             }\r
67         } else if ("string".equals(typeName)) {\r
68             type = StringType.getIntance();\r
69         } else if("binary".equals(typeName)) {\r
70             type = BinaryType.getInstance();\r
71         } else if("boolean".equals(typeName)) {\r
72             type = BooleanType.getInstance();\r
73         } else if("empty".equals(typeName)) {\r
74             type = EmptyType.getInstance();\r
75         } else if("instance-identifier".equals(typeName)) {\r
76             // FIXME\r
77             type = new InstanceIdentifier(null, true);\r
78         }\r
79 \r
80         return type;\r
81     }\r
82 \r
83 }\r