Make RangeRestrictedTypeDefinition type-aware
[yangtools.git] / yang / yang-model-util / src / main / java / org / opendaylight / yangtools / yang / model / util / type / AbstractBaseType.java
index 5b5c287099c1fa4abc7bd90f6df19490737b63e9..8080b325746a43b040be8b9cc7953d8784b40c1f 100644 (file)
@@ -7,29 +7,23 @@
  */
 package org.opendaylight.yangtools.yang.model.util.type;
 
-import com.google.common.base.MoreObjects;
-import com.google.common.base.MoreObjects.ToStringHelper;
-import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 import java.util.List;
-import org.opendaylight.yangtools.concepts.Immutable;
+import java.util.Optional;
+import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 
-abstract class AbstractBaseType<T extends TypeDefinition<T>> implements Immutable, TypeDefinition<T> {
-    private final List<UnknownSchemaNode> unknownSchemaNodes;
-    private final SchemaPath path;
-
+abstract class AbstractBaseType<T extends TypeDefinition<T>> extends AbstractTypeDefinition<T> {
     AbstractBaseType(final QName qname) {
-        this(SchemaPath.create(true, qname), ImmutableList.<UnknownSchemaNode>of());
+        this(SchemaPath.create(true, qname), ImmutableList.of());
     }
 
     AbstractBaseType(final SchemaPath path, final List<UnknownSchemaNode> unknownSchemaNodes) {
-        this.path = Preconditions.checkNotNull(path);
-        this.unknownSchemaNodes = Preconditions.checkNotNull(unknownSchemaNodes);
+        super(path, unknownSchemaNodes);
     }
 
     @Override
@@ -38,51 +32,28 @@ abstract class AbstractBaseType<T extends TypeDefinition<T>> implements Immutabl
     }
 
     @Override
-    public final String getUnits() {
-        return null;
-    }
-
-    @Override
-    public final Object getDefaultValue() {
-        return null;
+    public final Optional<String> getUnits() {
+        return Optional.empty();
     }
 
     @Override
-    public final QName getQName() {
-        return path.getLastComponent();
+    public final Optional<? extends Object> getDefaultValue() {
+        return Optional.empty();
     }
 
     @Override
-    public final SchemaPath getPath() {
-        return path;
+    public final Optional<String> getDescription() {
+        return Optional.empty();
     }
 
     @Override
-    public final String getDescription() {
-        return null;
-    }
-
-    @Override
-    public final String getReference() {
-        return null;
+    public final Optional<String> getReference() {
+        return Optional.empty();
     }
 
+    @Nonnull
     @Override
     public final Status getStatus() {
         return Status.CURRENT;
     }
-
-    @Override
-    public final List<UnknownSchemaNode> getUnknownSchemaNodes() {
-        return unknownSchemaNodes;
-    }
-
-    @Override
-    public final String toString() {
-        return addToStringAttributes(MoreObjects.toStringHelper(this).omitNullValues()).toString();
-    }
-
-    protected ToStringHelper addToStringAttributes(final ToStringHelper toStringHelper) {
-        return toStringHelper.add("path", path);
-    }
 }