/*
* 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.Syntax.Classes.Kernel;
import fUML.Debug;
import UMLPrimitiveTypes.*;
public class MultiplicityElement extends fUML.Syntax.Classes.Kernel.Element {
public boolean isOrdered = false;
public boolean isUnique = true;
public UnlimitedNatural upper = new UnlimitedNatural(1);
public int lower = 1;
public fUML.Syntax.Classes.Kernel.ValueSpecification upperValue = null;
public fUML.Syntax.Classes.Kernel.ValueSpecification lowerValue = null;
public MultiplicityElement() {
// This constructor sets upperValue and lowerValue consistently with the
// initializers for upper and lower.
this.setUpper(1);
this.setLower(1);
} // MultiplicityElement
public void setIsOrdered(boolean isOrdered) {
this.isOrdered = isOrdered;
} // setIsOrdered
public void setIsUnique(boolean isUnique) {
this.isUnique = isUnique;
} // setIsUnique
public void setUpperValue(
fUML.Syntax.Classes.Kernel.ValueSpecification upperValue) {
this.upperValue = upperValue;
if (upperValue instanceof LiteralUnlimitedNatural) {
this.upper = ((LiteralUnlimitedNatural) upperValue).value;
}
} // setUpperValue
public void setLowerValue(
fUML.Syntax.Classes.Kernel.ValueSpecification lowerValue) {
this.lowerValue = lowerValue;
if (lowerValue instanceof LiteralInteger) {
this.lower = ((LiteralInteger) lowerValue).value;
}
} // setLowerValue
public void setUpper(int upper) {
// Note: This is a convenience operation that may be used _instead_ of
// setUpperValue, not in addition to it.
this.upper = new UnlimitedNatural(upper);
this.upperValue = new LiteralUnlimitedNatural();
((LiteralUnlimitedNatural) this.upperValue).setValue(this.upper);
} // setUpper
public void setLower(int lower) {
// Note: This is a convenience operation that may be used _instead_ of
// setLowerValue, not in addition to it.
this.lower = lower;
this.lowerValue = new LiteralInteger();
((LiteralInteger) this.lowerValue).setValue(this.lower);
} // setLower
} // MultiplicityElement