From 157ebf5fe763a9572121e1a2d9043d1ce3bbb4c7 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 5 Mar 2015 14:30:24 +0100 Subject: [PATCH] Remove unnecessary casts xtend 2.7.x makes instanceof check an implicit cast for subsequent variable usage, so these generate warnings. Also remove use of deprecated types and speed up stringuilder usage by passing characters instead of strings where possible. Change-Id: I3131166a2fedf09743e6baf4159ba15357a37993 Signed-off-by: Robert Varga --- .../sal/java/api/generator/BaseTemplate.xtend | 4 +-- .../java/api/generator/BuilderTemplate.xtend | 10 +++---- .../java/api/generator/ClassTemplate.xtend | 7 ++--- .../api/generator/InterfaceTemplate.xtend | 6 ++-- .../generator/YangModuleInfoTemplate.xtend | 28 ++++++++----------- 5 files changed, 24 insertions(+), 31 deletions(-) diff --git a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BaseTemplate.xtend b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BaseTemplate.xtend index 9e33442de2..a9788cdef4 100644 --- a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BaseTemplate.xtend +++ b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BaseTemplate.xtend @@ -417,9 +417,9 @@ abstract class BaseTemplate { def getRestrictions(Type type) { var Restrictions restrictions = null if (type instanceof ConcreteType) { - restrictions = (type as ConcreteType).restrictions + restrictions = type.restrictions } else if (type instanceof GeneratedTransferObject) { - restrictions = (type as GeneratedTransferObject).restrictions + restrictions = type.restrictions } return restrictions } diff --git a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderTemplate.xtend b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderTemplate.xtend index 3a53ad2a93..a15d014fe9 100644 --- a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderTemplate.xtend +++ b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderTemplate.xtend @@ -277,14 +277,12 @@ class BuilderTemplate extends BaseTemplate { */ def private Object generateConstructorFromIfc(Type impl) ''' «IF (impl instanceof GeneratedType)» - «val implType = impl as GeneratedType» - - «IF !(implType.methodDefinitions.empty)» - public «type.name»«BUILDER»(«implType.fullyQualifiedName» arg) { - «printConstructorPropertySetter(implType)» + «IF !(impl.methodDefinitions.empty)» + public «type.name»«BUILDER»(«impl.fullyQualifiedName» arg) { + «printConstructorPropertySetter(impl)» } «ENDIF» - «FOR implTypeImplement : implType.implements» + «FOR implTypeImplement : impl.implements» «generateConstructorFromIfc(implTypeImplement)» «ENDFOR» «ENDIF» diff --git a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend index b79d871f88..28c2f0dcea 100644 --- a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend +++ b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend @@ -189,7 +189,7 @@ class ClassTemplate extends BaseTemplate { «IF !enclosedGeneratedTypes.empty» «FOR innerClass : enclosedGeneratedTypes SEPARATOR "\n"» «IF (innerClass instanceof GeneratedTransferObject)» - «val classTemplate = new ClassTemplate(innerClass as GeneratedTransferObject)» + «val classTemplate = new ClassTemplate(innerClass)» «classTemplate.generateAsInnerClass» «ENDIF» @@ -464,12 +464,11 @@ class ClassTemplate extends BaseTemplate { «IF c.name == TypeConstants.PATTERN_CONSTANT_NAME» «val cValue = c.value» «IF cValue instanceof List» - «val cValues = cValue as List» private static final «List.importedName»<«Pattern.importedName»> «Constants.MEMBER_PATTERN_LIST»; public static final «List.importedName» «TypeConstants.PATTERN_CONSTANT_NAME» = «ImmutableList.importedName».of(« - FOR v : cValues SEPARATOR ", "»« + FOR v : cValue SEPARATOR ", "»« IF v instanceof String»"« - v as String»"« + v»"« ENDIF»« ENDFOR»); diff --git a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/InterfaceTemplate.xtend b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/InterfaceTemplate.xtend index b9210287cf..606fd75371 100644 --- a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/InterfaceTemplate.xtend +++ b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/InterfaceTemplate.xtend @@ -121,12 +121,12 @@ class InterfaceTemplate extends BaseTemplate { «IF !enclosedGeneratedTypes.empty» «FOR innerClass : enclosedGeneratedTypes SEPARATOR "\n"» «IF (innerClass instanceof GeneratedTransferObject)» - «IF (innerClass as GeneratedTransferObject).unionType» - «val unionTemplate = new UnionTemplate(innerClass as GeneratedTransferObject)» + «IF innerClass.unionType» + «val unionTemplate = new UnionTemplate(innerClass)» «unionTemplate.generateAsInnerClass» «this.importMap.putAll(unionTemplate.importMap)» «ELSE» - «val classTemplate = new ClassTemplate(innerClass as GeneratedTransferObject)» + «val classTemplate = new ClassTemplate(innerClass)» «classTemplate.generateAsInnerClass» «this.importMap.putAll(classTemplate.importMap)» «ENDIF» diff --git a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/YangModuleInfoTemplate.xtend b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/YangModuleInfoTemplate.xtend index 08f19bdd70..9e27693962 100644 --- a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/YangModuleInfoTemplate.xtend +++ b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/YangModuleInfoTemplate.xtend @@ -20,7 +20,6 @@ import java.util.Map import java.util.Set import java.util.TreeMap -import org.opendaylight.yangtools.binding.generator.util.BindingGeneratorUtil import org.opendaylight.yangtools.binding.generator.util.Types import org.opendaylight.yangtools.sal.binding.model.api.ParameterizedType import org.opendaylight.yangtools.sal.binding.model.api.Type @@ -33,7 +32,6 @@ import com.google.common.collect.ImmutableSet import static org.opendaylight.yangtools.yang.binding.BindingMapping.* import org.opendaylight.yangtools.yang.binding.YangModelBindingProvider import com.google.common.base.Preconditions -import org.opendaylight.yangtools.yang.binding.BindingMapping class YangModuleInfoTemplate { @@ -51,7 +49,7 @@ class YangModuleInfoTemplate { Preconditions.checkArgument(module != null, "Module must not be null."); this.module = module this.ctx = ctx - _packageName = BindingGeneratorUtil.moduleNamespaceToPackageName(module); + _packageName = getRootPackageName(module.getQNameModule()); _modelBindingProviderName = '''«packageName».«MODEL_BINDING_PROVIDER_CLASS_NAME»'''; } @@ -114,15 +112,15 @@ class YangModuleInfoTemplate { «sorted.put(module.revision, module)» «ENDIF» «ENDFOR» - set.add(«BindingGeneratorUtil.moduleNamespaceToPackageName(sorted.lastEntry().value)».«MODULE_INFO_CLASS_NAME».getInstance()); + set.add(«getRootPackageName(sorted.lastEntry().value.QNameModule)».«MODULE_INFO_CLASS_NAME».getInstance()); «ELSE» - set.add(«BindingGeneratorUtil.moduleNamespaceToPackageName(ctx.findModuleByName(name, rev))».«MODULE_INFO_CLASS_NAME».getInstance()); + set.add(«getRootPackageName((ctx.findModuleByName(name, rev).QNameModule))».«MODULE_INFO_CLASS_NAME».getInstance()); «ENDIF» «ENDFOR» «ENDIF» «IF !m.submodules.empty» «FOR submodule : m.submodules» - set.add(«BindingMapping.getClassName(submodule.name)»Info.getInstance()); + set.add(«getClassName(submodule.name)»Info.getInstance()); «ENDFOR» «ENDIF» «IF m.imports.empty && m.submodules.empty» @@ -195,7 +193,7 @@ class YangModuleInfoTemplate { private def imports() ''' «IF !importMap.empty» «FOR entry : importMap.entrySet» - «IF entry.value != BindingGeneratorUtil.moduleNamespaceToPackageName(module)» + «IF entry.value != getRootPackageName(module.QNameModule)» import «entry.value».«entry.key»; «ENDIF» «ENDFOR» @@ -218,8 +216,7 @@ class YangModuleInfoTemplate { importMap.put(typeName, typePackageName); } if (type instanceof ParameterizedType) { - val ParameterizedType paramType = (type as ParameterizedType) - val Type[] params = paramType.getActualTypeArguments() + val Type[] params = type.getActualTypeArguments() if (params != null) { for (Type param : params) { putTypeIntoImports(param); @@ -260,11 +257,10 @@ class YangModuleInfoTemplate { final def StringBuilder addActualTypeParameters(StringBuilder builder, Type type) { if (type instanceof ParameterizedType) { - val ParameterizedType pType = (type as ParameterizedType) - val Type[] pTypes = pType.getActualTypeArguments(); - builder.append("<"); + val Type[] pTypes = type.getActualTypeArguments(); + builder.append('<'); builder.append(getParameters(pTypes)); - builder.append(">"); + builder.append('>'); } return builder; } @@ -302,9 +298,9 @@ class YangModuleInfoTemplate { private def generateSubInfo(Module module) ''' «FOR submodule : module.submodules» - private static final class «BindingMapping.getClassName(submodule.name)»Info implements «YangModuleInfo.importedName» { + private static final class «getClassName(submodule.name)»Info implements «YangModuleInfo.importedName» { - private static final «YangModuleInfo.importedName» INSTANCE = new «BindingMapping.getClassName(submodule.name)»Info(); + private static final «YangModuleInfo.importedName» INSTANCE = new «getClassName(submodule.name)»Info(); private final «String.importedName» name = "«submodule.name»"; private final «String.importedName» namespace = "«submodule.namespace.toString»"; @@ -318,7 +314,7 @@ class YangModuleInfoTemplate { return INSTANCE; } - «classBody(submodule, BindingMapping.getClassName(submodule.name + "Info"))» + «classBody(submodule, getClassName(submodule.name + "Info"))» } «ENDFOR» ''' -- 2.36.6