Move TypeDefinitions into yang-model-api
[yangtools.git] / yang / yang-model-util / src / main / java / org / opendaylight / yangtools / yang / model / util / type / RestrictedEnumerationType.java
index e86d3fe3a0745026c53a56cdd99282b871a79555..354422957b4687ac0874f2694a56c8844e4d8b8c 100644 (file)
@@ -7,6 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.model.util.type;
 
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
 import java.util.Collection;
 import java.util.List;
 import javax.annotation.Nonnull;
@@ -15,29 +17,32 @@ import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition;
 
 final class RestrictedEnumerationType extends AbstractRestrictedType<EnumTypeDefinition> implements EnumTypeDefinition {
+    private final List<EnumPair> values;
+
     RestrictedEnumerationType(final EnumTypeDefinition baseType, final SchemaPath path,
-            final Collection<UnknownSchemaNode> unknownSchemaNodes) {
+            final Collection<UnknownSchemaNode> unknownSchemaNodes, final Collection<EnumPair> values) {
         super(baseType, path, unknownSchemaNodes);
+        this.values = ImmutableList.copyOf(Preconditions.checkNotNull(values));
     }
 
     @Nonnull
     @Override
     public List<EnumPair> getValues() {
-        return getBaseType().getValues();
+        return values;
     }
 
     @Override
     public int hashCode() {
-        return TypeDefinitions.hashCode(this);
+        return EnumTypeDefinition.hashCode(this);
     }
 
     @Override
     public boolean equals(final Object obj) {
-        return TypeDefinitions.equals(this, obj);
+        return EnumTypeDefinition.equals(this, obj);
     }
 
     @Override
     public String toString() {
-        return TypeDefinitions.toString(this);
+        return EnumTypeDefinition.toString(this);
     }
 }