X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=datamodel%2Fcompbio%2Fmetadata%2FValueConstrain.java;h=375a02c6b387b32cdd5cdf36da57200e7183a34c;hb=73ca89ba470d6251d2f37ae6b7f443f133c35ab9;hp=c4d6908c0aa40dfb3bfaf9220f7c8a1fd0bb2230;hpb=fab6bab770b548a0c99ed6f5dfb46f5aa99f67c7;p=jabaws.git diff --git a/datamodel/compbio/metadata/ValueConstrain.java b/datamodel/compbio/metadata/ValueConstrain.java index c4d6908..375a02c 100644 --- a/datamodel/compbio/metadata/ValueConstrain.java +++ b/datamodel/compbio/metadata/ValueConstrain.java @@ -30,185 +30,185 @@ import compbio.util.Util; * * @author pvtroshin * - * Date November 2009 + * @version 1.0 November 2009 */ @XmlAccessorType(XmlAccessType.FIELD) public class ValueConstrain { - public static enum Type { - Integer, Float - }; - - @XmlElement(required = true) - Type type; - // These can contain different numeric types values, thus they are strings - String max; - String min; - - public Type getType() { - return type; - } - - public void setType(Type type) { - this.type = type; - } - - public Number getMax() { - if (Util.isEmpty(max)) { - return null; - } - switch (type) { - case Float: - return Double.parseDouble(max); - case Integer: - return Integer.parseInt(max); - } - // should not happened - throw new RuntimeException("Type is undefined! "); - } - - public void setMax(String max) { - this.max = max; - } - - public Number getMin() { - if (Util.isEmpty(min)) { - return null; - } - switch (type) { - case Float: - return Double.parseDouble(min); - case Integer: - return Integer.parseInt(min); - } - // should not happened - throw new RuntimeException("Type is undefined! "); - } - - public void setMin(String min) { - this.min = min; - } - - @Override - public boolean equals(Object obj) { - if (obj == null) { - return false; - } - ValueConstrain constr = null; - if (obj instanceof ValueConstrain) { - constr = (ValueConstrain) obj; - } else { - return false; - } - if (this.type != constr.type) { - return false; - } - if (this.max != null && constr.max != null) { - if (!this.max.equals(constr.max)) { - return false; - } - } else { - return false; - } - - if (this.min != null && constr.min != null) { - if (!this.min.equals(constr.min)) { - return false; - } - } else { - return false; - } - - return true; - } - - @Override - public String toString() { - String value = "Type: " + this.type + "\n"; - if (this.min != null) { - value += "Min: " + this.min + "\n"; - } - if (this.max != null) { - value += "Max: " + this.max + "\n"; - } - return value; - } - - @Override - public int hashCode() { - int code = type.hashCode(); - if (this.max != null) { - code *= this.max.hashCode(); - } - if (this.min != null) { - code *= this.min.hashCode(); - } - return code; - } - - boolean hasMinValue() { - return !Util.isEmpty(min); - } - - boolean hasMaxValue() { - return !Util.isEmpty(max); - } - - /** - * Validate that the value is within the constrain boundaries - * - * @param value - * @throws IndexOutOfBoundsException - * when the value is outside the defined boundaries - */ - void checkValue(String value) { - switch (type) { - case Float: - float val = Float.parseFloat(value); - if (getMin() != null - && new Float(this.getMin().floatValue()).compareTo(val) == 1) { - throw new IndexOutOfBoundsException("Value '" + value - + "' is lower that minumim value '" + getMin() + "'"); - } - if (getMax() != null - && new Float(this.getMax().floatValue()).compareTo(val) == -1) { - throw new IndexOutOfBoundsException("Value '" + value - + "' is greater that maximum value '" + getMax() + "'"); - } - break; - case Integer: - int ival = Integer.parseInt(value); - if (getMin() != null - && new Integer(this.getMin().intValue()).compareTo(ival) == 1) { - throw new IndexOutOfBoundsException("Value '" + value - + "' is lower that minumim value '" + getMin() + "'"); - } - if (getMax() != null - && new Integer(this.getMax().intValue()).compareTo(ival) == -1) { - throw new IndexOutOfBoundsException("Value '" + value - + "' is greater that maximum value '" + getMax() + "'"); - } - break; - } - } - - /** - * Validate the ValueConstrain object. For the ValueConstrain object the - * type and at least one boundary has to be defined - * - * @throws ValidationException - * - if the type or no boundaries are defined - */ - void validate() throws ValidationException { - if (this.type == null) { - throw new ValidationException( - "Type is not defined for ValueConstrain: " + this); - } - if (Util.isEmpty(min) && Util.isEmpty(max)) { - throw new ValidationException( - "Both boundaries (min and max) is undefined for ValueConstrain: " - + this); + public static enum Type { + Integer, Float + }; + + @XmlElement(required = true) + Type type; + // These can contain different numeric types values, thus they are strings + String max; + String min; + + public Type getType() { + return type; + } + + public void setType(Type type) { + this.type = type; + } + + public Number getMax() { + if (Util.isEmpty(max)) { + return null; + } + switch (type) { + case Float: + return Double.parseDouble(max); + case Integer: + return Integer.parseInt(max); + } + // should not happened + throw new RuntimeException("Type is undefined! "); + } + + public void setMax(String max) { + this.max = max; + } + + public Number getMin() { + if (Util.isEmpty(min)) { + return null; + } + switch (type) { + case Float: + return Double.parseDouble(min); + case Integer: + return Integer.parseInt(min); + } + // should not happened + throw new RuntimeException("Type is undefined! "); + } + + public void setMin(String min) { + this.min = min; + } + + @Override + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + ValueConstrain constr = null; + if (obj instanceof ValueConstrain) { + constr = (ValueConstrain) obj; + } else { + return false; + } + if (this.type != constr.type) { + return false; + } + if (this.max != null && constr.max != null) { + if (!this.max.equals(constr.max)) { + return false; + } + } else { + return false; + } + + if (this.min != null && constr.min != null) { + if (!this.min.equals(constr.min)) { + return false; + } + } else { + return false; + } + + return true; + } + + @Override + public String toString() { + String value = "Type: " + this.type + "\n"; + if (this.min != null) { + value += "Min: " + this.min + "\n"; + } + if (this.max != null) { + value += "Max: " + this.max + "\n"; + } + return value; + } + + @Override + public int hashCode() { + int code = type.hashCode(); + if (this.max != null) { + code *= this.max.hashCode(); + } + if (this.min != null) { + code *= this.min.hashCode(); + } + return code; + } + + boolean hasMinValue() { + return !Util.isEmpty(min); + } + + boolean hasMaxValue() { + return !Util.isEmpty(max); + } + + /** + * Validate that the value is within the constrain boundaries + * + * @param value + * @throws IndexOutOfBoundsException + * when the value is outside the defined boundaries + */ + void checkValue(String value) { + switch (type) { + case Float: + float val = Float.parseFloat(value); + if (getMin() != null + && new Float(this.getMin().floatValue()).compareTo(val) == 1) { + throw new IndexOutOfBoundsException("Value '" + value + + "' is lower that minumim value '" + getMin() + "'"); + } + if (getMax() != null + && new Float(this.getMax().floatValue()).compareTo(val) == -1) { + throw new IndexOutOfBoundsException("Value '" + value + + "' is greater that maximum value '" + getMax() + "'"); + } + break; + case Integer: + int ival = Integer.parseInt(value); + if (getMin() != null + && new Integer(this.getMin().intValue()).compareTo(ival) == 1) { + throw new IndexOutOfBoundsException("Value '" + value + + "' is lower that minumim value '" + getMin() + "'"); + } + if (getMax() != null + && new Integer(this.getMax().intValue()).compareTo(ival) == -1) { + throw new IndexOutOfBoundsException("Value '" + value + + "' is greater that maximum value '" + getMax() + "'"); + } + break; + } + } + + /** + * Validate the ValueConstrain object. For the ValueConstrain object the + * type and at least one boundary has to be defined + * + * @throws ValidationException + * - if the type or no boundaries are defined + */ + void validate() throws ValidationException { + if (this.type == null) { + throw new ValidationException( + "Type is not defined for ValueConstrain: " + this); + } + if (Util.isEmpty(min) && Util.isEmpty(max)) { + throw new ValidationException( + "Both boundaries (min and max) is undefined for ValueConstrain: " + + this); + } } - } }