/* * Initial version copyright 2008 Lockheed Martin Corporation, except * as stated in the file entitled Licensing-Information. * * All modifications copyright 2009-2012 Data Access Technologies, Inc. * * Licensed under the Academic Free License version 3.0 * (http://www.opensource.org/licenses/afl-3.0.php), except as stated * in the file entitled Licensing-Information. */ package fUML.Semantics.Classes.Kernel; import fUML.Debug; import UMLPrimitiveTypes.*; import fUML.Syntax.*; import fUML.Syntax.Classes.Kernel.*; import fUML.Semantics.*; import fUML.Semantics.Loci.*; public class EnumerationValue extends fUML.Semantics.Classes.Kernel.Value { public fUML.Syntax.Classes.Kernel.EnumerationLiteral literal = null; public fUML.Syntax.Classes.Kernel.Enumeration type = null; public fUML.Syntax.Classes.Kernel.ValueSpecification specify() { // Return an instance value with literal as the instance. InstanceValue instanceValue = new InstanceValue(); InstanceSpecification instance = new InstanceSpecification(); instanceValue.type = this.type; instanceValue.instance = this.literal; return instanceValue; } // specify public boolean equals(fUML.Semantics.Classes.Kernel.Value otherValue) { // Test if this enumeration value is equal to the otherValue. // To be equal, the otherValue must also be an enumeration value with // the same literal as this enumeration value. boolean isEqual = false; if (otherValue instanceof EnumerationValue) { isEqual = ((EnumerationValue) otherValue).literal == this.literal; } return isEqual; } // equals public fUML.Semantics.Classes.Kernel.Value copy() { // Create a new enumeration value with the same literal as this // enumeration value. EnumerationValue newValue = (EnumerationValue) (super.copy()); newValue.type = this.type; newValue.literal = this.literal; return newValue; } // copy protected fUML.Semantics.Classes.Kernel.Value new_() { // Create a new enumeration value with no literal. return new EnumerationValue(); } // new_ public fUML.Syntax.Classes.Kernel.ClassifierList getTypes() { // Return the single type of this enumeration value. ClassifierList types = new ClassifierList(); types.addValue(this.type); return types; } // getTypes public String toString() { return literal.name; } // toString } // EnumerationValue