/*
* 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 IntegerValue extends fUML.Semantics.Classes.Kernel.PrimitiveValue {
public int value = 0;
public fUML.Syntax.Classes.Kernel.ValueSpecification specify() {
// Return a literal integer with the value of this integer value.
LiteralInteger literal = new LiteralInteger();
literal.type = this.type;
literal.value = this.value;
return literal;
} // specify
public boolean equals(fUML.Semantics.Classes.Kernel.Value otherValue) {
// Test if this integer value is equal to the otherValue.
// To be equal, the otherValue must have the same value as this integer
// value.
boolean isEqual = false;
if (otherValue instanceof IntegerValue) {
isEqual = ((IntegerValue) otherValue).value == this.value;
}
return isEqual;
} // equals
public fUML.Semantics.Classes.Kernel.Value copy() {
// Create a new integer value with the same value as this integer value.
IntegerValue newValue = (IntegerValue) (super.copy());
newValue.value = this.value;
return newValue;
} // copy
protected fUML.Semantics.Classes.Kernel.Value new_() {
// Create a new integer value with no value.
return new IntegerValue();
} // new_
public String toString() {
String stringValue = "";
if (this.value == 0) {
stringValue = "0";
} else {
int positiveValue = this.value;
if (positiveValue < 0) {
positiveValue = -positiveValue;
}
do {
int digit = positiveValue % 10;
if (digit == 0) {
stringValue = "0" + stringValue;
} else if (digit == 1) {
stringValue = "1" + stringValue;
} else if (digit == 2) {
stringValue = "2" + stringValue;
} else if (digit == 3) {
stringValue = "3" + stringValue;
} else if (digit == 4) {
stringValue = "4" + stringValue;
} else if (digit == 5) {
stringValue = "5" + stringValue;
} else if (digit == 6) {
stringValue = "6" + stringValue;
} else if (digit == 7) {
stringValue = "7" + stringValue;
} else if (digit == 8) {
stringValue = "8" + stringValue;
} else if (digit == 9) {
stringValue = "9" + stringValue;
}
positiveValue = positiveValue / 10;
} while (positiveValue > 0);
if (this.value < 0) {
stringValue = "-" + stringValue;
}
}
return stringValue;
} // toString
} // IntegerValue