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();
}
}