// builder.setSchemaPath(typedef.getPath());
builder.setModuleName(module.statement().argument().getLocalName());
- addCodegenInformation(typedef, builder);
+ builderFactory.addCodegenInformation(typedef, builder);
annotateDeprecatedIfNecessary(typedef, builder);
makeSerializable(builder);
return builder.build();
// builder.setSchemaPath(typedef.getPath());
builder.setModuleName(moduleName);
- addCodegenInformation(typedef, builder);
+ builderFactory.addCodegenInformation(typedef, builder);
annotateDeprecatedIfNecessary(typedef, builder);
// builder.setSchemaPath(typedef.getPath());
builder.setModuleName(module.statement().argument().getLocalName());
- addCodegenInformation(definingStatement, builder);
+ builderFactory.addCodegenInformation(definingStatement, builder);
annotateDeprecatedIfNecessary(definingStatement, builder);
// addGetterMethods(builder, builderFactory);
annotateDeprecatedIfNecessary(builder);
- if (builderFactory instanceof TypeBuilderFactory.Codegen) {
- addCodegenInformation(module, statement(), builder);
- }
+ builderFactory.addCodegenInformation(module, statement(), builder);
return builder.build();
}
addGetterMethods(builder, builderFactory);
annotateDeprecatedIfNecessary(builder);
- if (builderFactory instanceof TypeBuilderFactory.Codegen) {
- addCodegenInformation(module, statement(), builder);
- }
+ builderFactory.addCodegenInformation(module, statement(), builder);
builder.setModuleName(module.statement().argument().getLocalName());
return builder.build();
module.addQNameConstant(builder, localName());
annotateDeprecatedIfNecessary(builder);
- if (builderFactory instanceof TypeBuilderFactory.Codegen) {
- addCodegenInformation(module, statement(), builder);
- }
+ builderFactory.addCodegenInformation(module, statement(), builder);
// newType.setSchemaPath(schemaNode.getPath());
builder.setModuleName(module.statement().argument().getLocalName());
addGetterMethods(builder, builderFactory);
annotateDeprecatedIfNecessary(builder);
- if (builderFactory instanceof TypeBuilderFactory.Codegen) {
- addCodegenInformation(module, statement(), builder);
- }
+ builderFactory.addCodegenInformation(module, statement(), builder);
builder.setModuleName(module.statement().argument().getLocalName());
// builder.setSchemaPath(node.getPath());
import java.util.Optional;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.mdsal.binding.generator.BindingGeneratorUtil;
import org.opendaylight.mdsal.binding.generator.impl.reactor.CollisionDomain.Member;
import org.opendaylight.mdsal.binding.model.api.AccessModifier;
import org.opendaylight.mdsal.binding.model.api.GeneratedType;
import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
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.AnnotableTypeBuilder;
import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedPropertyBuilder;
import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTOBuilder;
import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTypeBuilder;
-import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTypeBuilderBase;
import org.opendaylight.mdsal.binding.model.api.type.builder.MethodSignatureBuilder;
import org.opendaylight.mdsal.binding.model.ri.BindingTypes;
import org.opendaylight.mdsal.binding.model.ri.Types;
import org.opendaylight.mdsal.binding.model.ri.generated.type.builder.GeneratedPropertyBuilderImpl;
import org.opendaylight.mdsal.binding.spec.naming.BindingMapping;
import org.opendaylight.yangtools.yang.binding.DataContainer;
-import org.opendaylight.yangtools.yang.model.api.DocumentedNode;
import org.opendaylight.yangtools.yang.model.api.DocumentedNode.WithStatus;
-import org.opendaylight.yangtools.yang.model.api.SchemaNode;
import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.ri.type.TypeBuilder;
}
}
- static final void addCodegenInformation(final EffectiveStatement<?, ?> stmt,
- final GeneratedTypeBuilderBase<?> builder) {
- if (stmt instanceof DocumentedNode) {
- addCodegenInformation((DocumentedNode) stmt, builder);
- }
- }
-
- static final void addCodegenInformation(final DocumentedNode node, final GeneratedTypeBuilderBase<?> builder) {
- node.getDescription().map(BindingGeneratorUtil::encodeAngleBrackets).ifPresent(builder::setDescription);
- node.getReference().ifPresent(builder::setReference);
- }
-
- static final void addCodegenInformation(final ModuleGenerator module, final EffectiveStatement<?, ?> stmt,
- final GeneratedTypeBuilderBase<?> builder) {
- if (stmt instanceof DocumentedNode) {
- final DocumentedNode node = (DocumentedNode) stmt;
- TypeComments.description(node).ifPresent(builder::addComment);
- node.getDescription().ifPresent(builder::setDescription);
- node.getReference().ifPresent(builder::setReference);
- }
- if (stmt instanceof SchemaNode) {
- YangSourceDefinition.of(module.statement(), (SchemaNode) stmt).ifPresent(builder::setYangSourceDefinition);
- }
- }
-
static final void addUnits(final GeneratedTOBuilder builder, final TypeDefinition<?> typedef) {
typedef.getUnits().ifPresent(units -> {
if (!units.isEmpty()) {
module.addQNameConstant(builder, statement().argument());
annotateDeprecatedIfNecessary(builder);
- if (builderFactory instanceof TypeBuilderFactory.Codegen) {
- addCodegenInformation(module, statement(), builder);
- }
+ builderFactory.addCodegenInformation(module, statement(), builder);
return builder.build();
}
final ModuleGenerator module = currentModule();
module.addQNameConstant(builder, localName());
- addCodegenInformation(module, statement(), builder);
+ builderFactory.addCodegenInformation(module, statement(), builder);
builder.setModuleName(module.statement().argument().getLocalName());
// builder.setSchemaPath(identity.getPath());
addGetterMethods(builder, builderFactory);
annotateDeprecatedIfNecessary(builder);
- if (builderFactory instanceof TypeBuilderFactory.Codegen) {
- addCodegenInformation(module, statement(), builder);
- }
+ builderFactory.addCodegenInformation(module, statement(), builder);
builder.setModuleName(module.statement().argument().getLocalName());
// builder.setSchemaPath(node.getPath());
*/
package org.opendaylight.mdsal.binding.generator.impl.reactor;
-import static com.google.common.base.Verify.verify;
import static com.google.common.base.Verify.verifyNotNull;
import java.util.Map;
import org.opendaylight.mdsal.binding.generator.impl.reactor.CollisionDomain.Member;
import org.opendaylight.mdsal.binding.model.api.GeneratedType;
import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
-import org.opendaylight.mdsal.binding.model.api.YangSourceDefinition;
import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTypeBuilder;
import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTypeBuilderBase;
import org.opendaylight.mdsal.binding.model.ri.BindingTypes;
import org.opendaylight.mdsal.binding.spec.naming.BindingMapping;
import org.opendaylight.yangtools.yang.common.AbstractQName;
import org.opendaylight.yangtools.yang.common.QNameModule;
-import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.stmt.ChoiceEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.DataTreeEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement;
}
addGetterMethods(builder, builderFactory);
-
- if (builderFactory instanceof TypeBuilderFactory.Codegen) {
- final ModuleEffectiveStatement stmt = statement();
- verify(stmt instanceof Module, "Unexpected module %s", stmt);
- final Module module = (Module) stmt;
-
- YangSourceDefinition.of(module).ifPresent(builder::setYangSourceDefinition);
- TypeComments.description(module).ifPresent(builder::addComment);
- module.getDescription().ifPresent(builder::setDescription);
- module.getReference().ifPresent(builder::setReference);
- }
+ builderFactory.addCodegenInformation(statement(), builder);
return builder.build();
}
final ModuleGenerator module = currentModule();
module.addQNameConstant(builder, localName());
- addCodegenInformation(module, statement(), builder);
+ builderFactory.addCodegenInformation(module, statement(), builder);
annotateDeprecatedIfNecessary(builder);
return builder.build();
final ModuleGenerator module = currentModule();
module.addQNameConstant(builder, localName());
- addCodegenInformation(module, statement(), builder);
+ builderFactory.addCodegenInformation(module, statement(), builder);
builder.setModuleName(module.statement().argument().getLocalName());
// newType.setSchemaPath(schemaNode.getPath());
module.addQNameConstant(builder, localName());
annotateDeprecatedIfNecessary(builder);
- if (builderFactory instanceof TypeBuilderFactory.Codegen) {
- addCodegenInformation(module, statement(), builder);
- }
+ builderFactory.addCodegenInformation(module, statement(), builder);
// builder.setSchemaPath(schemaNode.getPath());
builder.setModuleName(module.statement().argument().getLocalName());
*/
package org.opendaylight.mdsal.binding.generator.impl.reactor;
+import static com.google.common.base.Verify.verify;
import static java.util.Objects.requireNonNull;
import com.google.common.annotations.Beta;
import java.util.List;
import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.mdsal.binding.generator.BindingGeneratorUtil;
import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject;
import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
+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.GeneratedTypeBuilder;
+import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTypeBuilderBase;
import org.opendaylight.mdsal.binding.model.ri.generated.type.builder.AbstractEnumerationBuilder;
import org.opendaylight.mdsal.binding.model.ri.generated.type.builder.CodegenEnumerationBuilder;
import org.opendaylight.mdsal.binding.model.ri.generated.type.builder.CodegenGeneratedTOBuilder;
import org.opendaylight.mdsal.binding.model.ri.generated.type.builder.RuntimeGeneratedTypeBuilder;
import org.opendaylight.mdsal.binding.runtime.api.RuntimeGeneratedUnion;
import org.opendaylight.yangtools.concepts.Immutable;
+import org.opendaylight.yangtools.yang.model.api.DocumentedNode;
+import org.opendaylight.yangtools.yang.model.api.Module;
+import org.opendaylight.yangtools.yang.model.api.SchemaNode;
+import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement;
import org.opendaylight.yangtools.yang.model.ri.type.TypeBuilder;
/**
*/
@Beta
public abstract class TypeBuilderFactory implements Immutable {
- static final class Codegen extends TypeBuilderFactory {
+ private static final class Codegen extends TypeBuilderFactory {
private static final @NonNull Codegen INSTANCE = new Codegen();
private Codegen() {
return new UnionBuilder(identifier);
}
+ @Override
+ void addCodegenInformation(final EffectiveStatement<?, ?> stmt,
+ final GeneratedTypeBuilderBase<?> builder) {
+ if (stmt instanceof DocumentedNode) {
+ addCodegenInformation((DocumentedNode) stmt, builder);
+ }
+ }
+
+ @Override
+ void addCodegenInformation(final ModuleEffectiveStatement stmt, final GeneratedTypeBuilderBase<?> builder) {
+ verify(stmt instanceof Module, "Unexpected module %s", stmt);
+ final Module module = (Module) stmt;
+
+ YangSourceDefinition.of(module).ifPresent(builder::setYangSourceDefinition);
+ TypeComments.description(module).ifPresent(builder::addComment);
+ module.getDescription().ifPresent(builder::setDescription);
+ module.getReference().ifPresent(builder::setReference);
+ }
+
+ @Override
+ void addCodegenInformation(final DocumentedNode node, final GeneratedTypeBuilderBase<?> builder) {
+ node.getDescription().map(BindingGeneratorUtil::encodeAngleBrackets).ifPresent(builder::setDescription);
+ node.getReference().ifPresent(builder::setReference);
+ }
+
+ @Override
+ void addCodegenInformation(final ModuleGenerator module, final EffectiveStatement<?, ?> stmt,
+ final GeneratedTypeBuilderBase<?> builder) {
+ if (stmt instanceof DocumentedNode) {
+ final DocumentedNode node = (DocumentedNode) stmt;
+ TypeComments.description(node).ifPresent(builder::addComment);
+ node.getDescription().ifPresent(builder::setDescription);
+ node.getReference().ifPresent(builder::setReference);
+ }
+ if (stmt instanceof SchemaNode) {
+ YangSourceDefinition.of(module.statement(), (SchemaNode) stmt)
+ .ifPresent(builder::setYangSourceDefinition);
+ }
+ }
+
private static final class UnionBuilder extends CodegenGeneratedTOBuilder implements GeneratedUnionBuilder {
UnionBuilder(final JavaTypeName identifier) {
super(identifier);
}
}
- static final class Runtime extends TypeBuilderFactory {
+ private static final class Runtime extends TypeBuilderFactory {
private static final @NonNull Runtime INSTANCE = new Runtime();
private Runtime() {
return new UnionBuilder(identifier);
}
+ @Override
+ void addCodegenInformation(final EffectiveStatement<?, ?> stmt, final GeneratedTypeBuilderBase<?> builder) {
+ // No-op
+ }
+
+ @Override
+ void addCodegenInformation(final ModuleEffectiveStatement stmt, final GeneratedTypeBuilderBase<?> builder) {
+ // No-op
+ }
+
+ @Override
+ void addCodegenInformation(final DocumentedNode node, final GeneratedTypeBuilderBase<?> builder) {
+ // No-op
+ }
+
+ @Override
+ void addCodegenInformation(final ModuleGenerator module, final EffectiveStatement<?, ?> stmt,
+ final GeneratedTypeBuilderBase<?> builder) {
+ // No-op
+ }
+
private static final class UnionBuilder extends RuntimeGeneratedTOBuilder implements GeneratedUnionBuilder {
private List<String> typePropertyNames;
@Override
public void setTypePropertyNames(final List<String> propertyNames) {
- this.typePropertyNames = List.copyOf(propertyNames);
+ typePropertyNames = List.copyOf(propertyNames);
}
@Override
abstract @NonNull GeneratedUnionBuilder newGeneratedUnionBuilder(JavaTypeName identifier);
+ abstract void addCodegenInformation(EffectiveStatement<?, ?> stmt, GeneratedTypeBuilderBase<?> builder);
+
+ abstract void addCodegenInformation(ModuleEffectiveStatement stmt, GeneratedTypeBuilderBase<?> builder);
+
+ abstract void addCodegenInformation(DocumentedNode node, GeneratedTypeBuilderBase<?> builder);
+
+ abstract void addCodegenInformation(ModuleGenerator module, EffectiveStatement<?, ?> stmt,
+ GeneratedTypeBuilderBase<?> builder);
}