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.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;
private String packageName;
private final String name;
private String comment = "";
-
+
+ private GeneratedTransferObject extendsType;
+ private final List<GeneratedType> implementsTypes = new ArrayList<GeneratedType>();
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) {
+ if (genType != null) {
+ return implementsTypes.add(genType);
+ }
+ return false;
+ }
+ @Override
+ public boolean addExtendsType(final GeneratedTransferObject genTransObj) {
+ if (genTransObj != null) {
+ extendsType = genTransObj;
+ return true;
+ }
+ return false;
+ }
+
@Override
public EnumBuilder addEnumeration(String name) {
final EnumBuilder builder = new EnumerationBuilderImpl(packageName,
@Override
public GeneratedTransferObject toInstance() {
return new GeneratedTransferObjectImpl(packageName, name, comment,
- annotationBuilders, constantDefintions, enumerations,
+ annotationBuilders, extendsType, implementsTypes, constantDefintions, enumerations,
methodDefinitions, properties, equalsProperties,
hashProperties, toStringProperties);
}
private final List<GeneratedProperty> stringProperties;
private final List<AnnotationType> annotations;
private final List<MethodSignature> methods;
+ private final GeneratedTransferObject extendsType;
+ private final List<GeneratedType> implementsTypes;
public GeneratedTransferObjectImpl(final String packageName,
final String name,
final String comment,
final List<AnnotationTypeBuilder> annotationBuilders,
+ final GeneratedTransferObject extendsType,
+ final List<GeneratedType> implementsTypes,
final List<ConstantBuilder> constantBuilders,
final List<EnumBuilder> enumBuilders,
final List<MethodSignatureBuilder> methodBuilders,
this.name = name;
this.comment = comment;
this.annotations = toUnmodifiableAnnotations(annotationBuilders);
+ this.extendsType = extendsType;
+ this.implementsTypes = Collections.unmodifiableList(implementsTypes);
this.constants = toUnmodifiableConstant(constantBuilders);
this.enumerations = toUnmodifiableEnumerations(enumBuilders);
this.properties = toUnmodifiableProperties(propBuilers);
public List<AnnotationType> getAnnotations() {
return annotations;
}
+
+ @Override
+ public List<GeneratedType> getImplements() {
+ return implementsTypes;
+ }
+ @Override
+ public GeneratedTransferObject getExtends() {
+ return extendsType;
+ }
+
@Override
public List<Enumeration> getEnumDefintions() {
return enumerations;
private String comment = "";
private final String name;
private final List<AnnotationTypeBuilder> annotationBuilders = new ArrayList<AnnotationTypeBuilder>();
+ private final List<GeneratedType> implementsTypes = new ArrayList<GeneratedType>();
private final List<EnumBuilder> enumDefinitions = new ArrayList<EnumBuilder>();
private final List<ConstantBuilder> constantDefintions = new ArrayList<ConstantBuilder>();
private final List<MethodSignatureBuilder> methodDefinitions = new ArrayList<MethodSignatureBuilder>();
-
+
public GeneratedTypeBuilderImpl(final String packageName, final String name) {
this.packageName = packageName;
this.name = name;
return builder;
}
+ @Override
+ public boolean addImplementsType(final GeneratedType genType) {
+ if (genType != null) {
+ return implementsTypes.add(genType);
+ }
+ return false;
+ }
+
@Override
public GeneratedType toInstance() {
return new GeneratedTypeImpl(this, packageName, name, comment,
- annotationBuilders, enumDefinitions, constantDefintions,
+ annotationBuilders, implementsTypes, enumDefinitions, constantDefintions,
methodDefinitions);
}
-
+
private static final class GeneratedTypeImpl implements GeneratedType {
private final Type parent;
private final String name;
private final String comment;
private final List<AnnotationType> annotations;
+ private final List<GeneratedType> implementsTypes;
private final List<Enumeration> enumDefinitions;
private final List<Constant> constantDefintions;
private final List<MethodSignature> methodDefinitions;
public GeneratedTypeImpl(final Type parent, final String packageName,
final String name, final String comment,
final List<AnnotationTypeBuilder> annotationBuilders,
+ final List<GeneratedType> implementsTypes,
final List<EnumBuilder> enumBuilders,
final List<ConstantBuilder> constantBuilders,
final List<MethodSignatureBuilder> methodBuilders) {
this.name = name;
this.comment = comment;
this.annotations = toUnmodifiableAnnotations(annotationBuilders);
+ this.implementsTypes = Collections.unmodifiableList(implementsTypes);
this.constantDefintions = toUnmodifiableConstants(constantBuilders);
this.enumDefinitions = toUnmodifiableEnums(enumBuilders);
this.methodDefinitions = toUnmodifiableMethods(methodBuilders);
public List<AnnotationType> getAnnotations() {
return annotations;
}
-
+
+ @Override
+ public List<GeneratedType> getImplements() {
+ return implementsTypes;
+ }
+
@Override
public List<Enumeration> getEnumDefintions() {
return enumDefinitions;
public interface GeneratedTransferObject extends GeneratedType {
+ public GeneratedTransferObject getExtends();
+
public List<GeneratedProperty> getProperties();
public List<GeneratedProperty> getEqualsIdentifiers();
public List<AnnotationType> getAnnotations();
+ public List<GeneratedType> getImplements();
+
/**
* Returns Set of all Enumerator definitions associated with interface.
*
*/
public interface GeneratedTOBuilder extends GeneratedTypeBuilder {
-
+
+ public boolean addExtendsType(final GeneratedTransferObject genTransObj);
+
public GeneratedPropertyBuilder addProperty(final String name);
public boolean addEqualsIdentity(final GeneratedPropertyBuilder property);
public AnnotationTypeBuilder addAnnotation(final String packageName, final String name);
+ public boolean addImplementsType(final GeneratedType genType);
+
public ConstantBuilder addConstant(final Type type, final String name,
final Object value);
final Set<DataSchemaNode> childs = dataNode.getChildNodes();
if (childs != null) {
for (DataSchemaNode childNode : childs) {
+ if (childNode.isAugmenting()) {
+ continue;
+ }
allChilds.add(childNode);
if (childNode instanceof ContainerSchemaNode) {
final ContainerSchemaNode container = (ContainerSchemaNode) childNode;
public SchemaContextUtil(final SchemaContext context) {
this.context = context;
}
-
+
+ public SchemaContext getContext() {
+ return context;
+ }
+
+ public DataSchemaNode findDataSchemaNode(final SchemaPath schemaPath) {
+ if (schemaPath != null) {
+ final Module module = resolveModuleFromSchemaPath(schemaPath);
+ final Queue<String> prefixedPath = schemaPathToQueuedPath(schemaPath);
+
+ if ((module != null) && (prefixedPath != null)) {
+ return findSchemaNodeForGivenPath(module, prefixedPath);
+ }
+ }
+ return null;
+ }
+
public DataSchemaNode findDataSchemaNode(final Module module,
final RevisionAwareXPath nonCondXPath) {
if (nonCondXPath != null) {
}
return retQueue;
}
-
+
+ private Queue<String> schemaPathToQueuedPath(final SchemaPath schemaPath) {
+ final Queue<String> retQueue = new LinkedList<String>();
+ if ((schemaPath != null) && (schemaPath.getPath() != null)) {
+ final List<QName> listPath = schemaPath.getPath();
+
+ for (final QName qname : listPath) {
+ if (qname != null) {
+ final String prefix = qname.getPrefix();
+ final String localName = qname.getLocalName();
+
+ final StringBuilder builder = new StringBuilder();
+ if (prefix != null) {
+ builder.append(prefix);
+ builder.append(":");
+ }
+ builder.append(localName);
+ retQueue.add(builder.toString());
+ }
+ }
+ }
+ return retQueue;
+ }
+
private Queue<String> resolveRelativeXPath(
final RevisionAwareXPath relativeXPath,
final SchemaPath leafrefSchemaPath) {