package er.extensions.formatters;
import java.text.FieldPosition;
import java.text.Format;
import java.text.ParsePosition;
import er.extensions.crypting.ERXCryptoString;
public class ERXCryptoStringFormatter extends Format {
/**
* Do I need to update serialVersionUID?
* See section 5.6 <cite>Type Changes Affecting Serialization</cite> on page 51 of the
* <a href="http://java.sun.com/j2se/1.4/pdf/serial-spec.pdf">Java Object Serialization Spec</a>
*/
private static final long serialVersionUID = 1L;
@Override
public StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos) {
if(obj instanceof ERXCryptoString) {
ERXCryptoString crypto = (ERXCryptoString)obj;
toAppendTo.append(crypto.toString());
} else if(obj != null) {
throw new IllegalArgumentException("The object argument must be an instance of " + ERXCryptoString.class.getName() + ". Object is an instance of the class " + obj.getClass().getName());
}
return toAppendTo;
}
@Override
public Object parseObject(String source, ParsePosition pos) {
ERXCryptoString crypto = new ERXCryptoString(source);
pos.setIndex(source.length());
return crypto;
}
}