package org.atriasoft.eStringSerialize; import java.util.HashMap; import java.util.Map; public class StringSerializer { private static final Map, Converter> VALUES_OF = new HashMap<>(); static { StringSerializer.VALUES_OF.put(byte.class, new Converter() { @Override public Object valueOf(final String value) { return Byte.valueOf(value.trim()); } @Override public String toString(final Object data) { return Byte.toString((Byte)data); } @Override public String[] toStringList(final Object data) { return new String[] { toString(data) }; } }); StringSerializer.VALUES_OF.put(Byte.class, new Converter() { @Override public Object valueOf(final String value) { return Byte.valueOf(value.trim()); } @Override public String toString(final Object data) { return Byte.toString((Byte)data); } @Override public String[] toStringList(final Object data) { return new String[] { toString(data) }; } }); StringSerializer.VALUES_OF.put(int.class, new Converter() { @Override public Object valueOf(final String value) { return Integer.valueOf(value.trim()); } @Override public String toString(final Object data) { return Integer.toString((Integer)data); } @Override public String[] toStringList(final Object data) { return new String[] { toString(data) }; } }); StringSerializer.VALUES_OF.put(Integer.class, new Converter() { @Override public Object valueOf(final String value) { return Integer.valueOf(value.trim()); } @Override public String toString(final Object data) { return Integer.toString((Integer)data); } @Override public String[] toStringList(final Object data) { return new String[] { toString(data) }; } }); StringSerializer.VALUES_OF.put(long.class, new Converter() { @Override public Object valueOf(final String value) { return Long.valueOf(value.trim()); } @Override public String toString(final Object data) { return Long.toString((Long)data); } @Override public String[] toStringList(final Object data) { return new String[] { toString(data) }; } }); StringSerializer.VALUES_OF.put(Long.class, new Converter() { @Override public Object valueOf(final String value) { return Long.valueOf(value.trim()); } @Override public String toString(final Object data) { return Long.toString((Long)data); } @Override public String[] toStringList(final Object data) { return new String[] { toString(data) }; } }); StringSerializer.VALUES_OF.put(short.class, new Converter() { @Override public Object valueOf(final String value) { return Short.valueOf(value.trim()); } @Override public String toString(final Object data) { return Short.toString((Short)data); } @Override public String[] toStringList(final Object data) { return new String[] { toString(data) }; } }); StringSerializer.VALUES_OF.put(Short.class, new Converter() { @Override public Object valueOf(final String value) { return Short.valueOf(value.trim()); } @Override public String toString(final Object data) { return Short.toString((Short)data); } @Override public String[] toStringList(final Object data) { return new String[] { toString(data) }; } }); StringSerializer.VALUES_OF.put(float.class, new Converter() { @Override public Object valueOf(final String value) { return Float.valueOf(value.trim()); } @Override public String toString(final Object data) { return Float.toString((Float)data); } @Override public String[] toStringList(final Object data) { return new String[] { toString(data) }; } }); StringSerializer.VALUES_OF.put(Float.class, new Converter() { @Override public Object valueOf(final String value) { return Float.valueOf(value.trim()); } @Override public String toString(final Object data) { return Float.toString((Float)data); } @Override public String[] toStringList(final Object data) { return new String[] { toString(data) }; } }); StringSerializer.VALUES_OF.put(double.class, new Converter() { @Override public Object valueOf(final String value) { return Double.valueOf(value.trim()); } @Override public String toString(final Object data) { return Double.toString((Double)data); } @Override public String[] toStringList(final Object data) { return new String[] { toString(data) }; } }); StringSerializer.VALUES_OF.put(Double.class, new Converter() { @Override public Object valueOf(final String value) { return Double.valueOf(value.trim()); } @Override public String toString(final Object data) { return Double.toString((Double)data); } @Override public String[] toStringList(final Object data) { return new String[] { toString(data) }; } }); StringSerializer.VALUES_OF.put(boolean.class, new Converter() { @Override public Object valueOf(final String value) { return Boolean.valueOf(value.trim()); } @Override public String toString(final Object data) { return Boolean.toString((Boolean)data); } @Override public String[] toStringList(final Object data) { return new String[] { toString(data) }; } }); StringSerializer.VALUES_OF.put(Boolean.class, new Converter() { @Override public Object valueOf(final String value) { return Boolean.valueOf(value.trim()); } @Override public String toString(final Object data) { return Boolean.toString((Boolean)data); } @Override public String[] toStringList(final Object data) { return new String[] { toString(data) }; } }); // StringSerializer.VALUES_OF.put(byte[].class, new Converter() { // @Override // public Object valueOf(final String value) { // return Tools.parseByteStringList(value); // } // // @Override // public String toString(final Object data) { // return Tools.toString((byte[])data); // } // // @Override // public String[] toStringList(final Object data) { // byte[] dataCast = (byte[])data; // String[] out = new String[dataCast.length]; // for (int iii=0; iii clazz) { return StringSerializer.VALUES_OF.containsKey(clazz); } /** * Un-serialize a String in a specified Object * @param value String to parse * @return Data generated or Null */ public static Object valueOf(final Class clazz, final String value) { if (value == null) { return null; } Converter conv = StringSerializer.VALUES_OF.get(clazz); return conv.valueOf(value); } public static String toString(final byte data) { return Byte.toString(data); } public static String toString(final boolean data) { return Boolean.toString(data); } public static String toString(final int data) { return Integer.toString(data); } public static String toString(final short data) { return Short.toString(data); } public static String toString(final long data) { return Long.toString(data); } /** * Serialize in a string the require data * @param data Object to serialize * @return The new data... */ public static String toString(final Object data) { if (data == null) { return null; } Class clazz = data.getClass(); Converter conv = StringSerializer.VALUES_OF.get(clazz); return conv.toString(data); } @Deprecated public static String[] toStringList(final Object data) { if (data == null) { return null; } Converter conv = StringSerializer.VALUES_OF.get(data.getClass()); return conv.toStringList(data); } private StringSerializer() {} }