package org.opendaylight.controller.binding.generator.util;
+import java.util.*;
+
import org.opendaylight.controller.binding.generator.util.generated.type.builder.GeneratedTOBuilderImpl;
import org.opendaylight.controller.sal.binding.model.api.type.builder.GeneratedTOBuilder;
import org.opendaylight.controller.yang.common.QName;
-import org.opendaylight.controller.yang.model.api.*;
+import org.opendaylight.controller.yang.model.api.Module;
+import org.opendaylight.controller.yang.model.api.SchemaNode;
+import org.opendaylight.controller.yang.model.api.SchemaPath;
+import org.opendaylight.controller.yang.model.api.TypeDefinition;
-import java.util.*;
+public final class BindingGeneratorUtil {
-public class BindingGeneratorUtil {
+ private static final String[] SET_VALUES = new String[] { "abstract", "assert", "boolean", "break", "byte", "case",
+ "catch", "char", "class", "const", "continue", "default", "double", "do", "else", "enum", "extends",
+ "false", "final", "finally", "float", "for", "goto", "if", "implements", "import", "instanceof", "int",
+ "interface", "long", "native", "new", "null", "package", "private", "protected", "public", "return",
+ "short", "static", "strictfp", "super", "switch", "synchronized", "this", "throw", "throws", "transient",
+ "true", "try", "void", "volatile", "while" };
- private static final String[] SET_VALUES = new String[]{"abstract",
- "assert", "boolean", "break", "byte", "case", "catch", "char",
- "class", "const", "continue", "default", "double", "do", "else",
- "enum", "extends", "false", "final", "finally", "float", "for",
- "goto", "if", "implements", "import", "instanceof", "int",
- "interface", "long", "native", "new", "null", "package", "private",
- "protected", "public", "return", "short", "static", "strictfp",
- "super", "switch", "synchronized", "this", "throw", "throws",
- "transient", "true", "try", "void", "volatile", "while"};
-
- private BindingGeneratorUtil() {}
+ private BindingGeneratorUtil() {
+ }
- public static final Set<String> JAVA_RESERVED_WORDS = new HashSet<String>(
- Arrays.asList(SET_VALUES));
+ public static final Set<String> JAVA_RESERVED_WORDS = new HashSet<String>(Arrays.asList(SET_VALUES));
public static String validateJavaPackage(final String packageName) {
if (packageName != null) {
return parameterName;
}
- public static GeneratedTOBuilder schemaNodeToTransferObjectBuilder(
- final String packageName, final SchemaNode schemaNode,
- final String transObjectName) {
- if (packageName != null && schemaNode != null
- && transObjectName != null) {
+ public static GeneratedTOBuilder schemaNodeToTransferObjectBuilder(final String packageName,
+ final SchemaNode schemaNode, final String transObjectName) {
+ if (packageName != null && schemaNode != null && transObjectName != null) {
- final String genTOName = BindingGeneratorUtil
- .parseToClassName(transObjectName);
- final GeneratedTOBuilder newType = new GeneratedTOBuilderImpl(
- packageName, genTOName);
+ final String genTOName = BindingGeneratorUtil.parseToClassName(transObjectName);
+ final GeneratedTOBuilder newType = new GeneratedTOBuilderImpl(packageName, genTOName);
return newType;
return null;
}
- public static String moduleNamespaceToPackageName(
- final Module module) {
+ public static String moduleNamespaceToPackageName(final Module module) {
final StringBuilder packageNameBuilder = new StringBuilder();
final Calendar calendar = Calendar.getInstance();
if (module.getRevision() == null) {
- throw new IllegalArgumentException("Module " + module.getName()
- + " does not specify revision date!");
+ throw new IllegalArgumentException("Module " + module.getName() + " does not specify revision date!");
}
packageNameBuilder.append("org.opendaylight.yang.gen.v");
packageNameBuilder.append(module.getYangVersion());
return validateJavaPackage(packageNameBuilder.toString());
}
- public static String packageNameForGeneratedType(
- final String basePackageName, final SchemaPath schemaPath) {
+ public static String packageNameForGeneratedType(final String basePackageName, final SchemaPath schemaPath) {
+ if (basePackageName == null) {
+ throw new IllegalArgumentException("Base Package Name cannot be NULL!");
+ }
+ if (schemaPath == null) {
+ throw new IllegalArgumentException("Schema Path cannot be NULL!");
+ }
+
final StringBuilder builder = new StringBuilder();
builder.append(basePackageName);
- if ((schemaPath != null) && (schemaPath.getPath() != null)) {
- final List<QName> pathToNode = schemaPath.getPath();
- final int traversalSteps = (pathToNode.size() - 1);
- for (int i = 0; i < traversalSteps; ++i) {
- builder.append(".");
- String nodeLocalName = pathToNode.get(i).getLocalName();
-
- nodeLocalName = nodeLocalName.replace(":", ".");
- nodeLocalName = nodeLocalName.replace("-", ".");
- builder.append(nodeLocalName);
- }
- return validateJavaPackage(builder.toString());
+ final List<QName> pathToNode = schemaPath.getPath();
+ final int traversalSteps = (pathToNode.size() - 1);
+ for (int i = 0; i < traversalSteps; ++i) {
+ builder.append(".");
+ String nodeLocalName = pathToNode.get(i).getLocalName();
+
+ nodeLocalName = nodeLocalName.replace(":", ".");
+ nodeLocalName = nodeLocalName.replace("-", ".");
+ builder.append(nodeLocalName);
}
- return null;
+ return validateJavaPackage(builder.toString());
+ }
+
+ public static String packageNameForTypeDefinition(final String basePackageName,
+ final TypeDefinition<?> typeDefinition) {
+ if (basePackageName == null) {
+ throw new IllegalArgumentException("Base Package Name cannot be NULL!");
+ }
+ if (typeDefinition == null) {
+ throw new IllegalArgumentException("Type Definition reference cannot be NULL!");
+ }
+
+ final StringBuilder builder = new StringBuilder();
+ builder.append(basePackageName);
+ return validateJavaPackage(builder.toString());
}
public static String parseToClassName(String token) {
return validateParameterName(correctStr);
}
+ public static String convertToCapitalLetters(final String token) {
+ String convertedStr = token.replace(" ", "_");
+ convertedStr = convertedStr.replace(".", "_");
+ convertedStr = convertedStr.toUpperCase();
+ return convertedStr;
+ }
+
private static String parseToCamelCase(String token) {
if (token == null) {
throw new NullPointerException("Name can not be null");
// check if 'toBeRemoved' character is not the only character in
// 'text'
if (sb.length() == 0) {
- throw new IllegalArgumentException("Name can not be '"
- + toBeRemoved + "'");
+ throw new IllegalArgumentException("Name can not be '" + toBeRemoved + "'");
}
- String replacement = String.valueOf(sb.charAt(toBeRemovedPos))
- .toUpperCase();
+ String replacement = String.valueOf(sb.charAt(toBeRemovedPos)).toUpperCase();
sb.setCharAt(toBeRemovedPos, replacement.charAt(0));
toBeRemovedPos = sb.indexOf(toBeRemoved);
}