/*
* 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 abstract class ExtensionalValue extends
fUML.Semantics.Classes.Kernel.CompoundValue {
public String identifier = "";
public fUML.Semantics.Loci.LociL1.Locus locus = null;
public void destroy() {
// Remove this value from its locus (if it has not already been
// destroyed).
if (this.locus != null) {
this.locus.remove(this);
}
} // destroy
public fUML.Semantics.Classes.Kernel.Value copy() {
// Create a new extensional value with the same feature values at the
// same locus as this one.
ExtensionalValue newValue = (ExtensionalValue) (super.copy());
if (this.locus != null) {
this.locus.add(newValue);
} else {
this.identifier = "";
}
return newValue;
} // copy
public String toString() {
return this.identifier + super.toString();
}
} // ExtensionalValue