import org.opendaylight.controller.sal.binding.model.api.Constant;
import org.opendaylight.controller.sal.binding.model.api.Enumeration;
import org.opendaylight.controller.sal.binding.model.api.GeneratedProperty;
+import org.opendaylight.controller.sal.binding.model.api.GeneratedTransferIdentityObject;
import org.opendaylight.controller.sal.binding.model.api.GeneratedTransferObject;
-import org.opendaylight.controller.sal.binding.model.api.GeneratedType;
import org.opendaylight.controller.sal.binding.model.api.MethodSignature;
import org.opendaylight.controller.sal.binding.model.api.Type;
import org.opendaylight.controller.sal.binding.model.api.type.builder.AnnotationTypeBuilder;
import org.opendaylight.controller.sal.binding.model.api.type.builder.GeneratedTOBuilder;
import org.opendaylight.controller.sal.binding.model.api.type.builder.MethodSignatureBuilder;
-public final class GeneratedTOBuilderImpl implements GeneratedTOBuilder {
+public class GeneratedTOBuilderImpl implements GeneratedTOBuilder {
private String packageName;
private final String name;
private String comment = "";
-
+
private GeneratedTransferObject extendsType;
- private final List<GeneratedType> implementsTypes = new ArrayList<GeneratedType>();
+ private final List<Type> implementsTypes = new ArrayList<Type>();
private final List<EnumBuilder> enumerations = new ArrayList<EnumBuilder>();
private final List<GeneratedPropertyBuilder> properties = new ArrayList<GeneratedPropertyBuilder>();
private final List<GeneratedPropertyBuilder> equalsProperties = new ArrayList<GeneratedPropertyBuilder>();
}
return null;
}
-
+
@Override
- public boolean addImplementsType(final GeneratedType genType) {
+ public boolean addImplementsType(final Type genType) {
if (genType != null) {
return implementsTypes.add(genType);
}
}
return false;
}
-
+
@Override
public EnumBuilder addEnumeration(String name) {
- final EnumBuilder builder = new EnumerationBuilderImpl(packageName,
+ final String innerPackageName = packageName + "." + this.name;
+ final EnumBuilder builder = new EnumerationBuilderImpl(innerPackageName,
name);
enumerations.add(builder);
return builder;
@Override
public GeneratedTransferObject toInstance() {
- return new GeneratedTransferObjectImpl(packageName, name, comment,
- annotationBuilders, extendsType, implementsTypes, constantDefintions, enumerations,
- methodDefinitions, properties, equalsProperties,
- hashProperties, toStringProperties);
+ return new GeneratedTransferObjectImpl(packageName, name, comment,
+ annotationBuilders, extendsType, implementsTypes,
+ constantDefintions, enumerations, methodDefinitions,
+ properties, equalsProperties, hashProperties,
+ toStringProperties);
+ }
+
+ @Override
+ public GeneratedTransferObject toIdentityInstance() {
+ return new GeneratedTransferIdentityObjectImpl(packageName, name, comment,
+ annotationBuilders, extendsType, implementsTypes,
+ constantDefintions, enumerations, methodDefinitions,
+ properties, equalsProperties, hashProperties,
+ toStringProperties);
}
private static final class GeneratedPropertyBuilderImpl implements
@Override
public GeneratedProperty toInstance(final Type definingType) {
- return new GeneratedPropertyImpl(name, comment, annotationBuilders, definingType,
- returnType, isFinal, isReadOnly, parameters, accessModifier);
+ return new GeneratedPropertyImpl(name, comment, annotationBuilders,
+ definingType, returnType, isFinal, isReadOnly, parameters,
+ accessModifier);
}
}
private final boolean isReadOnly;
private final List<MethodSignature.Parameter> parameters;
private final AccessModifier modifier;
-
+
public GeneratedPropertyImpl(final String name, final String comment,
- final List<AnnotationTypeBuilder> annotationBuilders, final Type parent, final Type returnType,
+ final List<AnnotationTypeBuilder> annotationBuilders,
+ final Type parent, final Type returnType,
final boolean isFinal, final boolean isReadOnly,
final List<Parameter> parameters, final AccessModifier modifier) {
super();
public List<AnnotationType> getAnnotations() {
return annotations;
}
-
+
@Override
public Type getReturnType() {
return returnType;
return isFinal;
}
-
-
@Override
public int hashCode() {
final int prime = 31;
if (other.returnType != null) {
return false;
}
- } else if (!returnType.getPackageName().equals(other.returnType.getPackageName())) {
+ } else if (!returnType.getPackageName().equals(
+ other.returnType.getPackageName())) {
return false;
} else if (!returnType.getName().equals(other.returnType.getName())) {
return false;
}
}
- private static final class GeneratedTransferObjectImpl implements
+ private static class GeneratedTransferObjectImpl implements
GeneratedTransferObject {
private final String packageName;
private final List<AnnotationType> annotations;
private final List<MethodSignature> methods;
private final GeneratedTransferObject extendsType;
- private final List<GeneratedType> implementsTypes;
+ private final List<Type> implementsTypes;
public GeneratedTransferObjectImpl(final String packageName,
- final String name,
- final String comment,
+ final String name, final String comment,
final List<AnnotationTypeBuilder> annotationBuilders,
final GeneratedTransferObject extendsType,
- final List<GeneratedType> implementsTypes,
+ final List<Type> implementsTypes,
final List<ConstantBuilder> constantBuilders,
final List<EnumBuilder> enumBuilders,
final List<MethodSignatureBuilder> methodBuilders,
this.comment = comment;
this.annotations = toUnmodifiableAnnotations(annotationBuilders);
this.extendsType = extendsType;
- this.implementsTypes = Collections.unmodifiableList(implementsTypes);
+ this.implementsTypes = Collections
+ .unmodifiableList(implementsTypes);
this.constants = toUnmodifiableConstant(constantBuilders);
this.enumerations = toUnmodifiableEnumerations(enumBuilders);
this.properties = toUnmodifiableProperties(propBuilers);
public Type getParentType() {
return null;
}
-
+
@Override
public String getComment() {
return comment;
}
-
+
@Override
public List<AnnotationType> getAnnotations() {
return annotations;
}
-
+
@Override
- public List<GeneratedType> getImplements() {
+ public List<Type> getImplements() {
return implementsTypes;
}
public GeneratedTransferObject getExtends() {
return extendsType;
}
-
+
@Override
public List<Enumeration> getEnumDefintions() {
return enumerations;
return builder.toString();
}
}
+
+ private static final class GeneratedTransferIdentityObjectImpl extends
+ GeneratedTransferObjectImpl implements
+ GeneratedTransferIdentityObject {
+ public GeneratedTransferIdentityObjectImpl(final String packageName,
+ final String name, final String comment,
+ final List<AnnotationTypeBuilder> annotationBuilders,
+ final GeneratedTransferObject extendsType,
+ final List<Type> implementsTypes,
+ final List<ConstantBuilder> constantBuilders,
+ final List<EnumBuilder> enumBuilders,
+ final List<MethodSignatureBuilder> methodBuilders,
+ final List<GeneratedPropertyBuilder> propBuilers,
+ final List<GeneratedPropertyBuilder> equalsBuilers,
+ final List<GeneratedPropertyBuilder> hashCodeBuilers,
+ final List<GeneratedPropertyBuilder> stringBuilers) {
+ super(packageName, name, comment, annotationBuilders, extendsType,
+ implementsTypes, constantBuilders, enumBuilders,
+ methodBuilders, propBuilers, equalsBuilers,
+ hashCodeBuilers, stringBuilers);
+ }
+ }
}