X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=code-generator%2Fbinding-generator-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fbinding%2Fgenerator%2Futil%2Fgenerated%2Ftype%2Fbuilder%2FGeneratedTOBuilderImpl.java;h=8d1bcea0e80be00fd1ccc4bc9923747474b6f076;hb=300aed51915840a41a1483980ff7d045bde905cb;hp=b3b1c7ce256ddff61166bc341dbafdfdc1b966ab;hpb=98621330fafd1ef1078c26ba1b04b3060692a4c1;p=yangtools.git diff --git a/code-generator/binding-generator-util/src/main/java/org/opendaylight/yangtools/binding/generator/util/generated/type/builder/GeneratedTOBuilderImpl.java b/code-generator/binding-generator-util/src/main/java/org/opendaylight/yangtools/binding/generator/util/generated/type/builder/GeneratedTOBuilderImpl.java index b3b1c7ce25..8d1bcea0e8 100644 --- a/code-generator/binding-generator-util/src/main/java/org/opendaylight/yangtools/binding/generator/util/generated/type/builder/GeneratedTOBuilderImpl.java +++ b/code-generator/binding-generator-util/src/main/java/org/opendaylight/yangtools/binding/generator/util/generated/type/builder/GeneratedTOBuilderImpl.java @@ -7,9 +7,9 @@ */ package org.opendaylight.yangtools.binding.generator.util.generated.type.builder; -import java.util.ArrayList; +import com.google.common.base.Preconditions; +import java.util.Collections; import java.util.List; - import org.opendaylight.yangtools.sal.binding.model.api.GeneratedProperty; import org.opendaylight.yangtools.sal.binding.model.api.GeneratedTransferObject; import org.opendaylight.yangtools.sal.binding.model.api.ParameterizedType; @@ -18,19 +18,24 @@ import org.opendaylight.yangtools.sal.binding.model.api.Type; import org.opendaylight.yangtools.sal.binding.model.api.type.builder.GeneratedPropertyBuilder; import org.opendaylight.yangtools.sal.binding.model.api.type.builder.GeneratedTOBuilder; import org.opendaylight.yangtools.sal.binding.model.api.type.builder.MethodSignatureBuilder; +import org.opendaylight.yangtools.util.LazyCollections; +import org.opendaylight.yangtools.yang.common.QName; -public final class GeneratedTOBuilderImpl extends AbstractGeneratedTypeBuilder implements - GeneratedTOBuilder { +public final class GeneratedTOBuilderImpl extends AbstractGeneratedTypeBuilder implements GeneratedTOBuilder { private GeneratedTransferObject extendsType; - private final ArrayList equalsProperties = new ArrayList<>(); - private final ArrayList hashProperties = new ArrayList<>(); - private final ArrayList toStringProperties = new ArrayList<>(); + private List equalsProperties = Collections.emptyList(); + private List hashProperties = Collections.emptyList(); + private List toStringProperties = Collections.emptyList(); private boolean isTypedef = false; private boolean isUnionType = false; private boolean isUnionTypeBuilder = false; private Restrictions restrictions; private GeneratedPropertyBuilder SUID; + private String reference; + private String description; + private String moduleName; + private Iterable schemaPath; public GeneratedTOBuilderImpl(final String packageName, final String name) { super(packageName, name); @@ -39,9 +44,7 @@ public final class GeneratedTOBuilderImpl extends AbstractGeneratedTypeBuilder schemaPath) { + this.schemaPath = schemaPath; + } + + @Override + public void setReference(String reference) { + this.reference = reference; + } + private static final class GeneratedTransferObjectImpl extends AbstractGeneratedType implements - GeneratedTransferObject { + GeneratedTransferObject { private final List equalsProperties; private final List hashCodeProperties; @@ -160,17 +182,30 @@ public final class GeneratedTOBuilderImpl extends AbstractGeneratedTypeBuilder schemaPath; public GeneratedTransferObjectImpl(final GeneratedTOBuilderImpl builder) { super(builder); this.extendsType = builder.extendsType; + + // FIXME: if these fields were guaranteed to be constant, we could perhaps + // cache and reuse them between instances... this.equalsProperties = toUnmodifiableProperties(builder.equalsProperties); this.hashCodeProperties = toUnmodifiableProperties(builder.hashProperties); this.stringProperties = toUnmodifiableProperties(builder.toStringProperties); + this.isTypedef = builder.isTypedef; this.isUnionType = builder.isUnionType; this.isUnionTypeBuilder = builder.isUnionTypeBuilder; this.restrictions = builder.restrictions; + this.reference = builder.reference; + this.description = builder.description; + this.moduleName = builder.moduleName; + this.schemaPath = builder.schemaPath; + if (builder.SUID == null) { this.SUID = null; } else { @@ -225,7 +260,7 @@ public final class GeneratedTOBuilderImpl extends AbstractGeneratedTypeBuilder getSchemaPath() { + return schemaPath; + } + + @Override + public String getModuleName() { + return moduleName; + } + + @Override + public boolean isSuitableForBoxing() { + return false; + } } }