summary |
shortlog |
log |
commit | commitdiff |
review |
tree
raw |
patch |
inline | side by side (from parent 1:
377076a)
Fix warnings about missing javadoc in TypeObject classes.
Add setting of YangSourceDefinition when building GeneratedType
for TypeObject so JavaFileTemplate.appendSnippet() generate javadoc
for this class.
Generation of javadoc was added for all TypeObjects not only
ScalarTypes as described in corresponding task.
JIRA: MDSAL-762
Change-Id: Iec3ab9e36bcea0807892bd024b7f04c451ff9000
Signed-off-by: Samuel Schneider <samuel.schneider@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
final boolean isTypedef = this instanceof TypedefGenerator;
final QName arg = type.argument();
if (TypeDefinitions.BITS.equals(arg)) {
final boolean isTypedef = this instanceof TypedefGenerator;
final QName arg = type.argument();
if (TypeDefinitions.BITS.equals(arg)) {
- return createBits(builderFactory, typeName(), currentModule(), extractTypeDefinition(), isTypedef);
+ return createBits(builderFactory, statement(), typeName(), currentModule(), extractTypeDefinition(),
+ isTypedef);
} else if (TypeDefinitions.ENUMERATION.equals(arg)) {
} else if (TypeDefinitions.ENUMERATION.equals(arg)) {
- return createEnumeration(builderFactory, typeName(), currentModule(),
+ return createEnumeration(builderFactory, statement(), typeName(), currentModule(),
(EnumTypeDefinition) extractTypeDefinition());
} else if (TypeDefinitions.UNION.equals(arg)) {
final List<GeneratedType> tmp = new ArrayList<>(1);
(EnumTypeDefinition) extractTypeDefinition());
} else if (TypeDefinitions.UNION.equals(arg)) {
final List<GeneratedType> tmp = new ArrayList<>(1);
auxiliaryGeneratedTypes = List.copyOf(tmp);
return ret;
} else {
auxiliaryGeneratedTypes = List.copyOf(tmp);
return ret;
} else {
- return createSimple(builderFactory, typeName(), currentModule(),
+ return createSimple(builderFactory, statement(), typeName(), currentModule(),
verifyNotNull(SIMPLE_TYPES.get(arg), "Unhandled type %s", arg), extractTypeDefinition());
}
}
private static @NonNull GeneratedTransferObject createBits(final TypeBuilderFactory builderFactory,
verifyNotNull(SIMPLE_TYPES.get(arg), "Unhandled type %s", arg), extractTypeDefinition());
}
}
private static @NonNull GeneratedTransferObject createBits(final TypeBuilderFactory builderFactory,
- final JavaTypeName typeName, final ModuleGenerator module, final TypeDefinition<?> typedef,
- final boolean isTypedef) {
+ final EffectiveStatement<?, ?> definingStatement, final JavaTypeName typeName, final ModuleGenerator module,
+ final TypeDefinition<?> typedef, final boolean isTypedef) {
final GeneratedTOBuilder builder = builderFactory.newGeneratedTOBuilder(typeName);
builder.setTypedef(isTypedef);
builder.addImplementsType(BindingTypes.TYPE_OBJECT);
builder.setBaseType(typedef);
final GeneratedTOBuilder builder = builderFactory.newGeneratedTOBuilder(typeName);
builder.setTypedef(isTypedef);
builder.addImplementsType(BindingTypes.TYPE_OBJECT);
builder.setBaseType(typedef);
+ YangSourceDefinition.of(module.statement(), definingStatement).ifPresent(builder::setYangSourceDefinition);
for (Bit bit : ((BitsTypeDefinition) typedef).getBits()) {
final String name = bit.getName();
for (Bit bit : ((BitsTypeDefinition) typedef).getBits()) {
final String name = bit.getName();
}
private static @NonNull Enumeration createEnumeration(final TypeBuilderFactory builderFactory,
}
private static @NonNull Enumeration createEnumeration(final TypeBuilderFactory builderFactory,
- final JavaTypeName typeName, final ModuleGenerator module, final EnumTypeDefinition typedef) {
+ final EffectiveStatement<?, ?> definingStatement, final JavaTypeName typeName,
+ final ModuleGenerator module, final EnumTypeDefinition typedef) {
// TODO units for typedef enum
final AbstractEnumerationBuilder builder = builderFactory.newEnumerationBuilder(typeName);
// TODO units for typedef enum
final AbstractEnumerationBuilder builder = builderFactory.newEnumerationBuilder(typeName);
+ YangSourceDefinition.of(module.statement(), definingStatement).ifPresent(builder::setYangSourceDefinition);
typedef.getDescription().map(BindingGeneratorUtil::encodeAngleBrackets)
.ifPresent(builder::setDescription);
typedef.getDescription().map(BindingGeneratorUtil::encodeAngleBrackets)
.ifPresent(builder::setDescription);
}
private static @NonNull GeneratedType createSimple(final TypeBuilderFactory builderFactory,
}
private static @NonNull GeneratedType createSimple(final TypeBuilderFactory builderFactory,
- final JavaTypeName typeName, final ModuleGenerator module, final Type javaType,
- final TypeDefinition<?> typedef) {
+ final EffectiveStatement<?, ?> definingStatement, final JavaTypeName typeName, final ModuleGenerator module,
+ final Type javaType, final TypeDefinition<?> typedef) {
final String moduleName = module.statement().argument().getLocalName();
final GeneratedTOBuilder builder = builderFactory.newGeneratedTOBuilder(typeName);
builder.setTypedef(true);
builder.addImplementsType(BindingTypes.scalarTypeObject(javaType));
final String moduleName = module.statement().argument().getLocalName();
final GeneratedTOBuilder builder = builderFactory.newGeneratedTOBuilder(typeName);
builder.setTypedef(true);
builder.addImplementsType(BindingTypes.scalarTypeObject(javaType));
+ YangSourceDefinition.of(module.statement(), definingStatement).ifPresent(builder::setYangSourceDefinition);
final GeneratedPropertyBuilder genPropBuilder = builder.addProperty(TypeConstants.VALUE_PROP);
genPropBuilder.setReturnType(javaType);
final GeneratedPropertyBuilder genPropBuilder = builder.addProperty(TypeConstants.VALUE_PROP);
genPropBuilder.setReturnType(javaType);
propSource = subUnionName.simpleName();
generatedType = subUnion;
} else if (TypeDefinitions.ENUMERATION.equals(subName)) {
propSource = subUnionName.simpleName();
generatedType = subUnion;
} else if (TypeDefinitions.ENUMERATION.equals(subName)) {
- final Enumeration subEnumeration = createEnumeration(builderFactory,
+ final Enumeration subEnumeration = createEnumeration(builderFactory, definingStatement,
typeName.createEnclosed(BindingMapping.getClassName(localName), "$"), module,
(EnumTypeDefinition) subType.getTypeDefinition());
builder.addEnumeration(subEnumeration);
generatedType = subEnumeration;
} else if (TypeDefinitions.BITS.equals(subName)) {
typeName.createEnclosed(BindingMapping.getClassName(localName), "$"), module,
(EnumTypeDefinition) subType.getTypeDefinition());
builder.addEnumeration(subEnumeration);
generatedType = subEnumeration;
} else if (TypeDefinitions.BITS.equals(subName)) {
- final GeneratedTransferObject subBits = createBits(builderFactory,
+ final GeneratedTransferObject subBits = createBits(builderFactory, definingStatement,
typeName.createEnclosed(BindingMapping.getClassName(localName), "$"), module,
subType.getTypeDefinition(), isTypedef);
builder.addEnclosingTransferObject(subBits);
typeName.createEnclosed(BindingMapping.getClassName(localName), "$"), module,
subType.getTypeDefinition(), isTypedef);
builder.addEnclosingTransferObject(subBits);
import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject;
import org.opendaylight.mdsal.binding.model.api.GeneratedType;
import org.opendaylight.mdsal.binding.model.api.Type;
import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject;
import org.opendaylight.mdsal.binding.model.api.GeneratedType;
import org.opendaylight.mdsal.binding.model.api.Type;
+import org.opendaylight.mdsal.binding.model.api.YangSourceDefinition;
import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTOBuilder;
import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTypeBuilderBase;
import org.opendaylight.mdsal.binding.runtime.api.TypedefRuntimeType;
import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTOBuilder;
import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTypeBuilderBase;
import org.opendaylight.mdsal.binding.runtime.api.TypedefRuntimeType;
builder.setExtendsType(baseType);
builder.setIsUnion(baseType.isUnionType());
builder.setRestrictions(computeRestrictions());
builder.setExtendsType(baseType);
builder.setIsUnion(baseType.isUnionType());
builder.setRestrictions(computeRestrictions());
+ YangSourceDefinition.of(currentModule().statement(), statement()).ifPresent(builder::setYangSourceDefinition);
final TypeDefinition<?> typedef = statement().getTypeDefinition();
annotateDeprecatedIfNecessary(typedef, builder);
final TypeDefinition<?> typedef = statement().getTypeDefinition();
annotateDeprecatedIfNecessary(typedef, builder);
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.AugmentEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.AugmentEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.TypedefEffectiveStatement;
import org.opendaylight.yangtools.yang.model.export.DeclaredStatementFormatter;
/**
import org.opendaylight.yangtools.yang.model.export.DeclaredStatementFormatter;
/**
.append("@see ").append(importedName(augType));
}
}
.append("@see ").append(importedName(augType));
}
}
+ if (node instanceof TypedefEffectiveStatement && genType instanceof GeneratedTransferObject genTO) {
+ final var augType = genTO.getSuperType();
+ if (augType != null) {
+ sb.append("\n\n")
+ .append("@see ").append(augType.getName());
+ }
+ }
} else if (def instanceof Multiple multiple) {
sb.append("<pre>\n");
for (SchemaNode node : multiple.getNodes()) {
} else if (def instanceof Multiple multiple) {
sb.append("<pre>\n");
for (SchemaNode node : multiple.getNodes()) {
import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
import org.opendaylight.mdsal.binding.model.api.MethodSignature;
import org.opendaylight.mdsal.binding.model.api.Type;
import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
import org.opendaylight.mdsal.binding.model.api.MethodSignature;
import org.opendaylight.mdsal.binding.model.api.Type;
+import org.opendaylight.mdsal.binding.model.api.YangSourceDefinition;
import org.opendaylight.mdsal.binding.model.api.type.builder.AnnotationTypeBuilder;
import org.opendaylight.mdsal.binding.model.api.type.builder.EnumBuilder;
import org.opendaylight.mdsal.binding.spec.naming.BindingMapping;
import org.opendaylight.mdsal.binding.model.api.type.builder.AnnotationTypeBuilder;
import org.opendaylight.mdsal.binding.model.api.type.builder.EnumBuilder;
import org.opendaylight.mdsal.binding.spec.naming.BindingMapping;
public abstract void setSchemaPath(SchemaPath schemaPath);
public abstract void setSchemaPath(SchemaPath schemaPath);
+ public abstract void setYangSourceDefinition(YangSourceDefinition yangSourceDefinition);
+
abstract AbstractPair createEnumPair(String name, String mappedName, int value, Status status, String description,
String reference);
abstract AbstractPair createEnumPair(String name, String mappedName, int value, Status status, String description,
String reference);
private String reference;
private String moduleName;
private SchemaPath schemaPath;
private String reference;
private String moduleName;
private SchemaPath schemaPath;
+ private YangSourceDefinition definition;
public CodegenEnumerationBuilder(final JavaTypeName identifier) {
super(identifier);
public CodegenEnumerationBuilder(final JavaTypeName identifier) {
super(identifier);
@Override
public void setDescription(final String description) {
this.description = description;
@Override
public void setDescription(final String description) {
this.description = description;
+ @Override
+ public void setYangSourceDefinition(final YangSourceDefinition yangSourceDefinition) {
+ this.definition = yangSourceDefinition;
private final String reference;
private final String moduleName;
private final SchemaPath schemaPath;
private final String reference;
private final String moduleName;
private final SchemaPath schemaPath;
+ private final YangSourceDefinition definition;
EnumerationImpl(final CodegenEnumerationBuilder builder) {
super(builder);
EnumerationImpl(final CodegenEnumerationBuilder builder) {
super(builder);
- this.description = builder.description;
- this.moduleName = builder.moduleName;
- this.schemaPath = builder.schemaPath;
- this.reference = builder.reference;
+ description = builder.description;
+ moduleName = builder.moduleName;
+ schemaPath = builder.schemaPath;
+ reference = builder.reference;
+ definition = builder.definition;
@Override
public String getDescription() {
@Override
public String getDescription() {
- return this.description;
}
@Override
public String getReference() {
}
@Override
public String getReference() {
}
@Override
public Iterable<QName> getSchemaPath() {
}
@Override
public Iterable<QName> getSchemaPath() {
- return this.schemaPath.getPathFromRoot();
+ return schemaPath.getPathFromRoot();
}
@Override
public String getModuleName() {
}
@Override
public String getModuleName() {
- return this.moduleName;
}
@Override
public Optional<YangSourceDefinition> getYangSourceDefinition() {
}
@Override
public Optional<YangSourceDefinition> getYangSourceDefinition() {
- return Optional.empty();
+ return Optional.ofNullable(definition);
+ @Override
+ public void setYangSourceDefinition(final YangSourceDefinition definition) {
+ // No-op
+ }
+
@Override
public Enumeration toInstance() {
return new EnumerationImpl(this);
@Override
public Enumeration toInstance() {
return new EnumerationImpl(this);