@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); }
@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 Object toValue(String s, boolean bigEndian) { if (s == null || s.isEmpty()) return Value.NULL; return toMultiValue(s); }
@Override public boolean prompt(Object val, boolean bigEndian, SpecificCharacterSet cs, int maxChars, StringBuilder sb) { if (val instanceof byte[]) return prompt((byte[]) val, bigEndian, maxChars, sb); return StringValueType.prompt(val.toString(), maxChars, sb); }
@Override public String toString(Object val, boolean bigEndian, int valueIndex, String defVal) { if (val instanceof int[]) { int[] is = (int[]) val; return (valueIndex < is.length && is[valueIndex] != Integer.MIN_VALUE) ? Integer.toString(is[valueIndex]) : defVal; } return super.toString(val, bigEndian, valueIndex, defVal); }
@Override public Object toStrings(Object val, boolean bigEndian, SpecificCharacterSet cs) { return (val instanceof double[]) ? toStrings((double[]) val) : super.toStrings(val, bigEndian, cs); }
@Override public byte[] toBytes(Object val, SpecificCharacterSet cs) { if (val instanceof int[]) val = toStrings((int[]) val); return super.toBytes(val, cs); }
@Override public Object toValue(String[] ss, boolean bigEndian) { if (ss == null || ss.length == 0) return Value.NULL; if (ss.length == 1) return toValue(ss[0], bigEndian); return ss; }
@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 boolean prompt(Object val, boolean bigEndian, SpecificCharacterSet cs, int maxChars, StringBuilder sb) { if (val instanceof double[]) val = toStrings((double[]) val); return super.prompt(val, bigEndian, cs, maxChars, sb); } },
@Override public String toString(Object val, boolean bigEndian, int valueIndex, String defVal) { if (val instanceof double[]) { double[] ds = (double[]) val; return (valueIndex < ds.length && !Double.isNaN(ds[valueIndex])) ? StringUtils.formatDS(ds[valueIndex]) : defVal; } return super.toString(val, bigEndian, valueIndex, defVal); }
@Override public Object toStrings(Object val, boolean bigEndian, SpecificCharacterSet cs) { return (val instanceof int[]) ? toStrings((int[]) val) : super.toStrings(val, bigEndian, cs); }
@Override public byte[] toBytes(Object val, SpecificCharacterSet cs) { if (val instanceof double[]) val = toStrings((double[]) val); return super.toBytes(val, cs); }
@Override public boolean prompt(Object val, boolean bigEndian, SpecificCharacterSet cs, int maxChars, StringBuilder sb) { if (val instanceof int[]) val = toStrings((int[]) val); return super.prompt(val, bigEndian, cs, maxChars, sb); } };