Merge "Do not return null when no RPC is registered"
[yangtools.git] / yang / yang-binding / src / main / java / org / opendaylight / yangtools / yang / binding / BindingMapping.java
index 00a36d98e8da0a5979cc401919f3debf297de6f6..f5db26dedaf01b401247799e607cdd4c674d2b9d 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,38 @@ 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 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('_', ' '));