*/
package org.opendaylight.mdsal.binding.java.api.generator
+import static org.opendaylight.mdsal.binding.model.util.BindingTypes.DATA_OBJECT
import static org.opendaylight.mdsal.binding.spec.naming.BindingMapping.AUGMENTATION_FIELD
import static org.opendaylight.mdsal.binding.spec.naming.BindingMapping.AUGMENTABLE_AUGMENTATION_NAME
import static org.opendaylight.mdsal.binding.spec.naming.BindingMapping.DATA_CONTAINER_IMPLEMENTED_INTERFACE_NAME
import org.opendaylight.mdsal.binding.model.api.GeneratedProperty
import org.opendaylight.mdsal.binding.model.api.GeneratedType
import org.opendaylight.mdsal.binding.model.api.Type
+import org.opendaylight.mdsal.binding.model.util.Types
import org.opendaylight.mdsal.binding.spec.naming.BindingMapping
import org.opendaylight.yangtools.yang.binding.AbstractAugmentable
-import org.opendaylight.yangtools.yang.binding.DataObject
class BuilderImplTemplate extends AbstractBuilderTemplate {
val Type builderType;
def protected generateEquals() '''
«IF !properties.empty || augmentType !== null»
@«OVERRIDE.importedName»
- public boolean equals(«Object.importedName» obj) {
+ public boolean equals(«Types.objectType().importedName» obj) {
if (this == obj) {
return true;
}
- if (!(obj instanceof «DataObject.importedName»)) {
+ if (!(obj instanceof «DATA_OBJECT.importedName»)) {
return false;
}
- if (!«targetType.importedName».class.equals(((«DataObject.importedName»)obj).«DATA_CONTAINER_IMPLEMENTED_INTERFACE_NAME»())) {
+ if (!«targetType.importedName».class.equals(((«DATA_OBJECT.importedName»)obj).«DATA_CONTAINER_IMPLEMENTED_INTERFACE_NAME»())) {
return false;
}
«targetType.importedName» other = («targetType.importedName»)obj;
package org.opendaylight.mdsal.binding.java.api.generator
import static extension org.apache.commons.text.StringEscapeUtils.escapeJava
+import static org.opendaylight.mdsal.binding.model.util.BindingTypes.DATA_OBJECT
import static org.opendaylight.mdsal.binding.spec.naming.BindingMapping.AUGMENTABLE_AUGMENTATION_NAME
import static org.opendaylight.mdsal.binding.spec.naming.BindingMapping.AUGMENTATION_FIELD
import com.google.common.collect.ImmutableList
import java.util.ArrayList
import java.util.Collection
-import java.util.HashMap
import java.util.HashSet
import java.util.List
import java.util.Map
import org.opendaylight.mdsal.binding.spec.naming.BindingMapping
import org.opendaylight.yangtools.concepts.Builder
import org.opendaylight.yangtools.yang.binding.AugmentationHolder
-import org.opendaylight.yangtools.yang.binding.DataObject
/**
* Template for generating JAVA builder classes.
/**
* Constant used as suffix for builder name.
*/
- public static val BUILDER = "Builder";
+ package static val BUILDER_STR = "Builder";
static val AUGMENTATION_FIELD_UPPER = AUGMENTATION_FIELD.toFirstUpper
+ static val BUILDER = JavaTypeName.create(Builder)
/**
* Constructs new instance of this class.
override body() '''
«wrapToDocumentation(formatDataForJavaDoc(targetType))»
«targetType.annotations.generateDeprecatedAnnotation»
- public class «type.name» implements «Builder.importedName»<«targetType.importedName»> {
+ public class «type.name» implements «BUILDER.importedName»<«targetType.importedName»> {
«generateFields(false)»
«IF targetType.hasImplementsFromUses»
«val List<Type> done = targetType.getBaseIfcs»
«generateMethodFieldsFromComment(targetType)»
- public void fieldsFrom(«DataObject.importedName» arg) {
+ public void fieldsFrom(«DATA_OBJECT.importedName» arg) {
boolean isValidArg = false;
«FOR impl : targetType.getAllIfcs»
«generateIfCheck(impl, done)»
«IF augmentType !== null»
«val augmentTypeRef = augmentType.importedName»
«val jlClassRef = CLASS.importedName»
+ «val hashMapRef = JU_HASHMAP.importedName»
public «type.name» add«AUGMENTATION_FIELD_UPPER»(«jlClassRef»<? extends «augmentTypeRef»> augmentationType, «augmentTypeRef» augmentationValue) {
if (augmentationValue == null) {
return remove«AUGMENTATION_FIELD_UPPER»(augmentationType);
}
- if (!(this.«AUGMENTATION_FIELD» instanceof «HashMap.importedName»)) {
- this.«AUGMENTATION_FIELD» = new «HashMap.importedName»<>();
+ if (!(this.«AUGMENTATION_FIELD» instanceof «hashMapRef»)) {
+ this.«AUGMENTATION_FIELD» = new «hashMapRef»<>();
}
this.«AUGMENTATION_FIELD».put(augmentationType, augmentationValue);
}
public «type.name» remove«AUGMENTATION_FIELD_UPPER»(«jlClassRef»<? extends «augmentTypeRef»> augmentationType) {
- if (this.«AUGMENTATION_FIELD» instanceof «HashMap.importedName») {
+ if (this.«AUGMENTATION_FIELD» instanceof «hashMapRef») {
this.«AUGMENTATION_FIELD».remove(augmentationType);
}
return this;
</ul>
@see «target»
- @see «Builder.importedName»
+ @see «BUILDER.importedName»
'''
}
override protected generateCopyAugmentation(Type implType) {
val augmentationHolderRef = AugmentationHolder.importedName
val typeRef = targetType.importedName
- val hashMapRef = HashMap.importedName
+ val hashMapRef = JU_HASHMAP.importedName
val augmentTypeRef = augmentType.importedName
return '''
if (base instanceof «augmentationHolderRef») {
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.mdsal.binding.model.api.Type;
-import org.opendaylight.yangtools.yang.binding.CodeHelpers;
import org.opendaylight.yangtools.yang.model.api.type.LengthConstraint;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
sb.append(" }\n");
}
- sb.append(" ").append(template.importedName(CodeHelpers.class)).append(".throwInvalidLength(\"")
- .append(createLengthString(constraint)).append("\", value);\n");
+ sb.append(" ").append(template.importedName(JavaFileTemplate.CODEHELPERS))
+ .append(".throwInvalidLength(\"").append(createLengthString(constraint)).append("\", value);\n");
}
return sb.append("}\n").toString();
sb.append(" }\n");
}
- sb.append(" ").append(template.importedName(CodeHelpers.class)).append(".throwInvalidLength(\"")
- .append(createLengthString(constraint)).append("\", value);\n");
+ sb.append(" ").append(template.importedName(JavaFileTemplate.CODEHELPERS))
+ .append(".throwInvalidLength(\"").append(createLengthString(constraint)).append("\", value);\n");
}
return sb.append("}\n").toString();