Merge "Fixed DataObjectReadingUtil to resolve multiple items from lists if InstanceId...
[yangtools.git] / yang / yang-binding / src / main / java / org / opendaylight / yangtools / yang / binding / BindingMapping.java
index 00a36d98e8da0a5979cc401919f3debf297de6f6..2f1dfb275efedaa5cbc42020f4b505fb896b491e 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.yangtools.yang.common.QName;
 
 import com.google.common.base.Splitter;
 import com.google.common.collect.ImmutableSet;
+
 import static com.google.common.base.Preconditions.*;
 
 public final class BindingMapping {
@@ -30,23 +31,41 @@ public final class BindingMapping {
     public static final String RPC_SERVICE_SUFFIX = "Service";
     public static final String NOTIFICATION_LISTENER_SUFFIX = "Listener";
     public static final String QNAME_STATIC_FIELD_NAME = "QNAME";
+    public static final String PACKAGE_PREFIX = "org.opendaylight.yang.gen.v1";
 
     private static final Splitter SPACE_SPLITTER = Splitter.on(" ").omitEmptyStrings().trimResults();
 
+    public static final String MODULE_INFO_CLASS_NAME = "$YangModuleInfoImpl";
+    public static final String MODEL_BINDING_PROVIDER_CLASS_NAME = "$YangModelBindingProvider";
+
     public static final String getMethodName(QName name) {
         checkArgument(name != null, "Name should not be null.");
-        return toFirstLower(toCamelCase(name.getLocalName()));
+        return getMethodName(name.getLocalName());
     }
 
     public static final String getClassName(String localName) {
+        checkArgument(localName != null, "Name should not be null.");
         return toFirstUpper(toCamelCase(localName));
     }
 
+    public static final String getMethodName(String yangIdentifier) {
+        checkArgument(yangIdentifier != null,"Identifier should not be null");
+        return toFirstLower(toCamelCase(yangIdentifier));
+    }
+
     public static final String getClassName(QName name) {
         checkArgument(name != null, "Name should not be null.");
         return toFirstUpper(toCamelCase(name.getLocalName()));
     }
 
+    public static String getPropertyName(String yangIdentifier) {
+        final String potential = toFirstLower(toCamelCase(yangIdentifier));
+        if("class".equals(potential)) {
+            return "xmlClass";
+        }
+        return potential;
+    }
+
     private static final String toCamelCase(String rawString) {
         checkArgument(rawString != null, "String should not be null");
         Iterable<String> components = SPACE_SPLITTER.split(rawString.replace('-', ' ').replace('_', ' '));