Disconnect yang-model-ri from Builder 37/99337/2
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 17 Jan 2022 19:09:57 +0000 (20:09 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 17 Jan 2022 19:28:50 +0000 (20:28 +0100)
concepts.Builder is going away, remove its use from yang-model-ri.

JIRA: YANGTOOLS-1328
Change-Id: I42dabe2924bffc2d6c60ed70111b7d65735cbee0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/type/BitBuilder.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/type/EnumPairBuilder.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/type/TypeBuilder.java
model/yang-model-ri/src/test/java/org/opendaylight/yangtools/yang/model/ri/type/TypeTest.java

index c58874bb1aa8e40d0cb063a3e2f0d4495a888aca..eee87a5bb32c60987ab4a54dac791d5d41b3978b 100644 (file)
@@ -12,7 +12,7 @@ import static java.util.Objects.requireNonNull;
 import com.google.common.annotations.Beta;
 import com.google.common.collect.ImmutableList;
 import java.util.Collection;
-import org.opendaylight.yangtools.concepts.Builder;
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.concepts.Mutable;
 import org.opendaylight.yangtools.yang.common.Uint32;
 import org.opendaylight.yangtools.yang.model.api.Status;
@@ -25,7 +25,7 @@ import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition.Bit;
  * @author Robert Varga
  */
 @Beta
-public final class BitBuilder implements Builder<Bit>, Mutable {
+public final class BitBuilder implements Mutable {
     private final String name;
     private final Uint32 position;
 
@@ -39,37 +39,41 @@ public final class BitBuilder implements Builder<Bit>, Mutable {
         this.position = requireNonNull(position);
     }
 
-    public static BitBuilder create(final String name, final Uint32 position) {
+    public static @NonNull BitBuilder create(final String name, final Uint32 position) {
         return new BitBuilder(name, position);
     }
 
-    public BitBuilder setDescription(final String description) {
+    public @NonNull BitBuilder setDescription(final String description) {
         this.description = description;
         return this;
     }
 
-    public BitBuilder setReference(final String reference) {
+    public @NonNull BitBuilder setReference(final String reference) {
         this.reference = reference;
         return this;
     }
 
-    public BitBuilder setStatus(final Status status) {
+    public @NonNull BitBuilder setStatus(final Status status) {
         this.status = requireNonNull(status);
         return this;
     }
 
-    public BitBuilder setUnknownSchemaNodes(final Collection<UnknownSchemaNode> unknownSchemaNodes) {
+    public @NonNull BitBuilder setUnknownSchemaNodes(final Collection<UnknownSchemaNode> unknownSchemaNodes) {
         this.unknownSchemaNodes = ImmutableList.copyOf(unknownSchemaNodes);
         return this;
     }
 
-    public BitBuilder setUnknownSchemaNodes(final UnknownSchemaNode... unknownSchemaNodes) {
+    public @NonNull BitBuilder setUnknownSchemaNodes(final UnknownSchemaNode... unknownSchemaNodes) {
         this.unknownSchemaNodes = ImmutableList.copyOf(unknownSchemaNodes);
         return this;
     }
 
-    @Override
-    public Bit build() {
+    /**
+     * Return the {@link Bit} corresponding to current builder state.
+     *
+     * @return A Bit
+     */
+    public @NonNull Bit build() {
         return new BitImpl(name, position, description, reference, status, unknownSchemaNodes);
     }
 }
index d154f1786cc0ff99e7c03ceedddca938533466ae..63d9accb6a75ea85d421cc1ce2b911a30269a4fe 100644 (file)
@@ -12,7 +12,7 @@ import static java.util.Objects.requireNonNull;
 import com.google.common.annotations.Beta;
 import com.google.common.collect.ImmutableList;
 import java.util.Collection;
-import org.opendaylight.yangtools.concepts.Builder;
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.concepts.Mutable;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
@@ -20,11 +20,9 @@ import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition.EnumPai
 
 /**
  * Utility builder for {@link EnumPair} instances.
- *
- * @author Robert Varga
  */
 @Beta
-public final class EnumPairBuilder implements Builder<EnumPair>, Mutable {
+public final class EnumPairBuilder implements Mutable {
     private final String name;
     private final Integer value;
 
@@ -38,37 +36,42 @@ public final class EnumPairBuilder implements Builder<EnumPair>, Mutable {
         this.value = requireNonNull(value);
     }
 
-    public static EnumPairBuilder create(final String name, final Integer value) {
+    public static @NonNull EnumPairBuilder create(final String name, final Integer value) {
         return new EnumPairBuilder(name, value);
     }
 
-    public EnumPairBuilder setDescription(final String description) {
+    public @NonNull EnumPairBuilder setDescription(final String description) {
         this.description = description;
         return this;
     }
 
-    public EnumPairBuilder setReference(final String reference) {
+    public @NonNull EnumPairBuilder setReference(final String reference) {
         this.reference = reference;
         return this;
     }
 
-    public EnumPairBuilder setStatus(final Status status) {
+    public @NonNull EnumPairBuilder setStatus(final Status status) {
         this.status = requireNonNull(status);
         return this;
     }
 
-    public EnumPairBuilder setUnknownSchemaNodes(final Collection<? extends UnknownSchemaNode> unknownSchemaNodes) {
+    public @NonNull EnumPairBuilder setUnknownSchemaNodes(
+            final Collection<? extends UnknownSchemaNode> unknownSchemaNodes) {
         this.unknownSchemaNodes = ImmutableList.copyOf(unknownSchemaNodes);
         return this;
     }
 
-    public EnumPairBuilder setUnknownSchemaNodes(final UnknownSchemaNode... unknownSchemaNodes) {
+    public @NonNull EnumPairBuilder setUnknownSchemaNodes(final UnknownSchemaNode... unknownSchemaNodes) {
         this.unknownSchemaNodes = ImmutableList.copyOf(unknownSchemaNodes);
         return this;
     }
 
-    @Override
-    public EnumPair build() {
+    /**
+     * Return an {@link EnumPair} representation of this builder's current state.
+     *
+     * @return An EnumPair
+     */
+    public @NonNull EnumPair build() {
         return new EnumPairImpl(name, value, description, reference, status, unknownSchemaNodes);
     }
 }
index c2474f5cf8ae30127932a47b2dfe4ac968cd85d0..0e31233af184ef43b031c3320499baa513878b7d 100644 (file)
@@ -12,12 +12,12 @@ import static java.util.Objects.requireNonNull;
 import com.google.common.collect.ImmutableList;
 import java.util.Collection;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Builder;
+import org.opendaylight.yangtools.concepts.Mutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 
-public abstract class TypeBuilder<T extends TypeDefinition<T>> implements Builder<T> {
+public abstract class TypeBuilder<T extends TypeDefinition<T>> implements Mutable {
     private final ImmutableList.Builder<UnknownSchemaNode> unknownSchemaNodes = ImmutableList.builder();
     private final @NonNull QName qname;
     private final T baseType;
@@ -27,6 +27,13 @@ public abstract class TypeBuilder<T extends TypeDefinition<T>> implements Builde
         this.baseType = baseType;
     }
 
+    /**
+     * Build a {@link TypeDefinition} corresponding to this builder.
+     *
+     * @return A TypeDefinition
+     */
+    public abstract @NonNull T build();
+
     final T getBaseType() {
         return baseType;
     }
index e5437673daff54ac0543608eed3c44e6028fdd9b..b8208208269b7612d47501a42892ca135f48e727 100644 (file)
@@ -23,7 +23,6 @@ import com.google.common.collect.RangeSet;
 import java.util.List;
 import java.util.Optional;
 import org.junit.Test;
-import org.opendaylight.yangtools.concepts.Builder;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.Uint32;
 import org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition;
@@ -479,7 +478,7 @@ public class TypeTest {
         assertEquals(type1, type2);
     }
 
-    private static void restrictedBuilderTest(final Builder<?> typeBuilder1, final Builder<?> typeBuilder2) {
+    private static void restrictedBuilderTest(final TypeBuilder<?> typeBuilder1, final TypeBuilder<?> typeBuilder2) {
         final TypeDefinition<?> typeDefinition1 = ((AbstractRestrictedTypeBuilder<?>) typeBuilder1).buildType();
         final TypeDefinition<?> typeDefinition2 = ((AbstractRestrictedTypeBuilder<?>) typeBuilder2).buildType();
         hashCodeEqualsToStringTest(typeDefinition1, typeDefinition2);