package edu.stanford.rt.datatype; /** * @author Ninghui Li, Sandra Qiu
* * Implementation of StringType element * */ public class StringType extends OrderedType { private boolean ignoreCase; private boolean ordered; /** * Constructor for StringType. */ public StringType( String name, boolean ignoreCase, boolean ordered) { super(name); this.ignoreCase = ignoreCase; this.ordered = ordered; } /* (non-Javadoc) * @see edu.stanford.rt.datatype.SimpleType#isValidValue(DataValue) */ public boolean isValidValue(DataValue value) { if (!(value instanceof StringValue)) return false; return true; } /* (non-Javadoc) * @see edu.stanford.rt.datatype.OrderedType#compares(DataValue, DataValue) */ public int compares(DataValue value1, DataValue value2) { if (!(value1 instanceof StringValue) || !(value2 instanceof StringValue)) throw new IllegalArgumentException("Wrong argument type"); String val1 = ((StringValue) value1).getValue(); String val2 = ((StringValue) value2).getValue(); if (ignoreCase) return val1.toLowerCase().compareTo(val2.toLowerCase()); else return val1.compareTo(val2); } /** * Method isIgnoreCase. * @return boolean */ public boolean isIgnoreCase() { return ignoreCase; } /** * Method isOrdered. * @return boolean */ public boolean isOrdered() { return ordered; } /* (non-Javadoc) * @see edu.stanford.rt.datatype.DataType#toString(String) */ public String toString(String indent) { String thisIndent = indent + " "; StringBuffer sb = new StringBuffer(); sb .append(thisIndent) .append("StringType: ") .append(getName()) .append(" ") .append("ignoreCase = ") .append(ignoreCase) .append(" ") .append("ordered = ") .append(ordered) .append("\n"); return sb.toString(); } }