import java.util.Map
import java.util.Objects
import java.util.Set
-import org.opendaylight.yangtools.binding.generator.util.ReferencedTypeImpl
-import org.opendaylight.yangtools.binding.generator.util.Types
-import org.opendaylight.yangtools.binding.generator.util.generated.type.builder.GeneratedTOBuilderImpl
+import org.opendaylight.mdsal.binding.generator.util.ReferencedTypeImpl
+import org.opendaylight.mdsal.binding.generator.util.Types
+import org.opendaylight.mdsal.binding.generator.util.generated.type.builder.GeneratedTOBuilderImpl
+import org.opendaylight.mdsal.binding.model.api.ConcreteType
+import org.opendaylight.mdsal.binding.model.api.GeneratedProperty
+import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject
+import org.opendaylight.mdsal.binding.model.api.GeneratedType
+import org.opendaylight.mdsal.binding.model.api.MethodSignature
+import org.opendaylight.mdsal.binding.model.api.Type
import org.opendaylight.yangtools.concepts.Builder
-import org.opendaylight.yangtools.sal.binding.model.api.ConcreteType
-import org.opendaylight.yangtools.sal.binding.model.api.GeneratedProperty
-import org.opendaylight.yangtools.sal.binding.model.api.GeneratedTransferObject
-import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType
-import org.opendaylight.yangtools.sal.binding.model.api.MethodSignature
-import org.opendaylight.yangtools.sal.binding.model.api.Type
import org.opendaylight.yangtools.yang.binding.Augmentable
import org.opendaylight.yangtools.yang.binding.AugmentationHolder
import org.opendaylight.yangtools.yang.binding.DataObject
* @param implementedIfcs list of implemented interfaces
*/
def private void collectImplementedMethods(Set<MethodSignature> methods, List<Type> implementedIfcs) {
- if (implementedIfcs == null || implementedIfcs.empty) {
+ if (implementedIfcs === null || implementedIfcs.empty) {
return
}
for (implementedIfc : implementedIfcs) {
* @return set of generated property instances which represents the getter <code>methods</code>
*/
def private propertiesFromMethods(Collection<MethodSignature> methods) {
- if (methods == null || methods.isEmpty()) {
+ if (methods === null || methods.isEmpty()) {
return Collections.emptySet
}
val Set<GeneratedProperty> result = new LinkedHashSet
for (m : methods) {
val createdField = m.propertyFromGetter
- if (createdField != null) {
+ if (createdField !== null) {
result.add(createdField)
}
}
* </ul>
*/
def private GeneratedProperty propertyFromGetter(MethodSignature method) {
- if (method == null || method.name == null || method.name.empty || method.returnType == null) {
+ if (method === null || method.name === null || method.name.empty || method.returnType === null) {
throw new IllegalArgumentException("Method, method name, method return type reference cannot be NULL or empty!")
}
var prefix = "get";
- if(Types.BOOLEAN.equals(method.returnType)) {
+ if (Types.BOOLEAN.equals(method.returnType)) {
prefix = "is";
}
if (method.name.startsWith(prefix)) {
'''
def private generateAugmentField(boolean isPrivate) '''
- «IF augmentField != null»
+ «IF augmentField !== null»
«IF isPrivate»private «ENDIF»«Map.importedName»<«Class.importedName»<? extends «augmentField.returnType.importedName»>, «augmentField.returnType.importedName»> «augmentField.name» = «Collections.importedName».emptyMap();
«ENDIF»
'''
«FOR field : properties SEPARATOR '\n'»
«/* FIXME: generate checkers as simple blocks and embed them directly in setters */»
«val restrictions = field.returnType.restrictions»
- «IF !(field.returnType instanceof GeneratedType) && restrictions != null»
+ «IF !(field.returnType instanceof GeneratedType) && restrictions !== null»
«IF !restrictions.rangeConstraints.nullOrEmpty»
«val rangeGenerator = AbstractRangeGenerator.forType(field.returnType)»
«rangeGenerator.generateRangeChecker(field.name.toFirstUpper, restrictions.rangeConstraints)»
«ENDIF»
«ENDIF»
public «type.name»«BUILDER» set«field.name.toFirstUpper»(final «field.returnType.importedName» value) {
- «IF !(field.returnType instanceof GeneratedType) && restrictions != null»
- «IF restrictions != null && (!restrictions.rangeConstraints.nullOrEmpty || !restrictions.lengthConstraints.nullOrEmpty)»
+ «IF !(field.returnType instanceof GeneratedType) && restrictions !== null»
+ «IF restrictions !== null && (!restrictions.rangeConstraints.nullOrEmpty || !restrictions.lengthConstraints.nullOrEmpty)»
if (value != null) {
«IF !restrictions.rangeConstraints.nullOrEmpty»
«val rangeGenerator = AbstractRangeGenerator.forType(field.returnType)»
return this;
}
«ENDFOR»
- «IF augmentField != null»
+ «IF augmentField !== null»
public «type.name»«BUILDER» add«augmentField.name.toFirstUpper»(«Class.importedName»<? extends «augmentField.returnType.importedName»> augmentationType, «augmentField.returnType.importedName» augmentation) {
if (augmentation == null) {
«val allProps = new ArrayList(properties)»
«val isList = implementsIfc(type, Types.parameterizedTypeFor(Types.typeForClass(Identifiable), type))»
«val keyType = type.getKey»
- «IF isList && keyType != null»
+ «IF isList && keyType !== null»
«val keyProps = new ArrayList((keyType as GeneratedTransferObject).properties)»
«Collections.sort(keyProps,
[ p1, p2 |
«FOR field : allProps»
this.«field.fieldName» = base.«field.getterMethodName»();
«ENDFOR»
- «IF augmentField != null»
+ «IF augmentField !== null»
«IF impl»
switch (base.«augmentField.name».size()) {
case 0:
toRemove = p;
}
}
- if (toRemove != null) {
+ if (toRemove !== null) {
props.remove(toRemove);
}
}
«field.getterMethod»
«ENDFOR»
«ENDIF»
- «IF augmentField != null»
+ «IF augmentField !== null»
@SuppressWarnings("unchecked")
«IF addOverride»@Override«ENDIF»
* @return string with the <code>hashCode()</code> method definition in JAVA format
*/
def protected generateHashCode() '''
- «IF !properties.empty || augmentField != null»
+ «IF !properties.empty || augmentField !== null»
private int hash = 0;
private volatile boolean hashValid = false;
result = prime * result + «Objects.importedName».hashCode(«property.fieldName»);
«ENDIF»
«ENDFOR»
- «IF augmentField != null»
+ «IF augmentField !== null»
result = prime * result + «Objects.importedName».hashCode(«augmentField.name»);
«ENDIF»
* @return string with the <code>equals()</code> method definition in JAVA format
*/
def protected generateEquals() '''
- «IF !properties.empty || augmentField != null»
+ «IF !properties.empty || augmentField !== null»
@Override
public boolean equals(«Object.importedName» obj) {
if (this == obj) {
return false;
}
«ENDFOR»
- «IF augmentField != null»
+ «IF augmentField !== null»
if (getClass() == obj.getClass()) {
// Simple case: we are comparing against self
«type.name»«IMPL» otherImpl = («type.name»«IMPL») obj;
«IF !(properties === null)»
@Override
public «String.importedName» toString() {
- «StringBuilder.importedName» builder = new «StringBuilder.importedName» ("«type.name» [");
+ «String.importedName» name = "«type.name» [";
+ «StringBuilder.importedName» builder = new «StringBuilder.importedName» (name);
«FOR property : properties SEPARATOR "\n builder.append(\", \");\n}" AFTER " }\n"»
if («property.fieldName» != null) {
builder.append("«property.fieldName»=");
builder.append(«property.fieldName»);
«ENDIF»
«ENDFOR»
- «IF augmentField != null»
+ «IF augmentField !== null»
«IF !properties.empty»
«««Append comma separator only if it's not there already from previous operation»»»
-int builderLength = builder.length();
- if (builderLength > 2 && !builder.substring(builderLength - 2, builderLength).equals(", ")) {
+final int builderLength = builder.length();
+ final int builderAdditionalLength = builder.substring(name.length(), builderLength).length();
+ if (builderAdditionalLength > 2 && !builder.substring(builderLength - 2, builderLength).equals(", ")) {
builder.append(", ");
}
«ENDIF»