@Override public byte[] toBytes(Object val, SpecificCharacterSet cs) { if (val instanceof byte[]) return (byte[]) val; if (val instanceof String) return cs(cs).encode((String) val, delimiters); if (val instanceof String[]) return cs(cs).encode( StringUtils.concat((String[]) val, '\\'), delimiters); throw new UnsupportedOperationException(); }
@Override public Object toStrings(Object val, boolean bigEndian, SpecificCharacterSet cs) { if (val instanceof byte[]) { return splitAndTrim(cs(cs).decode((byte[]) val), cs); } if (val instanceof String || val instanceof String[]) return val; throw new UnsupportedOperationException(); }
@Override public boolean prompt(Object val, boolean bigEndian, SpecificCharacterSet cs, int maxChars, StringBuilder sb) { if (val instanceof byte[]) return prompt(cs(cs).decode((byte[]) val), maxChars, sb); if (val instanceof String) return prompt((String) val, maxChars, sb); if (val instanceof String[]) return prompt((String[]) val, maxChars, sb); return prompt(val.toString(), maxChars, sb); }