exml/src/org/atriasoft/eStringSerialize/StringSerializer.java

623 lines
16 KiB
Java

package org.atriasoft.eStringSerialize;
import java.util.HashMap;
import java.util.Map;
public class StringSerializer {
private static final Map<Class<?>, 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<dataCast.length; iii++) {
// out[iii] = Byte.toString(dataCast[iii]);
// }
// return out;
// }
// });
// StringSerializer.VALUES_OF.put(Byte[].class, new Converter() {
// @Override
// public Object valueOf(final String value) {
// return Tools.parseByteClassStringList(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<dataCast.length; iii++) {
// out[iii] = Byte.toString(dataCast[iii]);
// }
// return out;
// }
// });
// StringSerializer.VALUES_OF.put(short[].class, new Converter() {
// @Override
// public Object valueOf(final String value) {
// return Tools.parseShortStringList(value);
// }
//
// @Override
// public String toString(final Object data) {
// return Tools.toString((short[])data);
// }
//
// @Override
// public String[] toStringList(final Object data) {
// short[] dataCast = (short[])data;
// String[] out = new String[dataCast.length];
// for (int iii=0; iii<dataCast.length; iii++) {
// out[iii] = Short.toString(dataCast[iii]);
// }
// return out;
// }
// });
// StringSerializer.VALUES_OF.put(Short[].class, new Converter() {
// @Override
// public Object valueOf(final String value) {
// return Tools.parseShortClassStringList(value);
// }
//
// @Override
// public String toString(final Object data) {
// return Tools.toString((Short[])data);
// }
//
// @Override
// public String[] toStringList(final Object data) {
// Short[] dataCast = (Short[])data;
// String[] out = new String[dataCast.length];
// for (int iii=0; iii<dataCast.length; iii++) {
// out[iii] = Short.toString(dataCast[iii]);
// }
// return out;
// }
// });
// StringSerializer.VALUES_OF.put(int[].class, new Converter() {
// @Override
// public Object valueOf(final String value) {
// return Tools.parseIntegerStringList(value);
// }
//
// @Override
// public String toString(final Object data) {
// return Tools.toString((int[])data);
// }
//
// @Override
// public String[] toStringList(final Object data) {
// int[] dataCast = (int[])data;
// String[] out = new String[dataCast.length];
// for (int iii=0; iii<dataCast.length; iii++) {
// out[iii] = Integer.toString(dataCast[iii]);
// }
// return out;
// }
// });
// StringSerializer.VALUES_OF.put(Integer[].class, new Converter() {
// @Override
// public Object valueOf(final String value) {
// return Tools.parseIntegerClassStringList(value);
// }
//
// @Override
// public String toString(final Object data) {
// return Tools.toString((Integer[])data);
// }
//
// @Override
// public String[] toStringList(final Object data) {
// Integer[] dataCast = (Integer[])data;
// String[] out = new String[dataCast.length];
// for (int iii=0; iii<dataCast.length; iii++) {
// out[iii] = Integer.toString(dataCast[iii]);
// }
// return out;
// }
// });
// StringSerializer.VALUES_OF.put(long[].class, new Converter() {
// @Override
// public Object valueOf(final String value) {
// return Tools.parseLongStringList(value);
// }
//
// @Override
// public String toString(final Object data) {
// return Tools.toString((long[])data);
// }
//
// @Override
// public String[] toStringList(final Object data) {
// long[] dataCast = (long[])data;
// String[] out = new String[dataCast.length];
// for (int iii=0; iii<dataCast.length; iii++) {
// out[iii] = Long.toString(dataCast[iii]);
// }
// return out;
// }
// });
// StringSerializer.VALUES_OF.put(Long[].class, new Converter() {
// @Override
// public Object valueOf(final String value) {
// return Tools.parseLongClassStringList(value);
// }
//
// @Override
// public String toString(final Object data) {
// return Tools.toString((Long[])data);
// }
//
// @Override
// public String[] toStringList(final Object data) {
// Long[] dataCast = (Long[])data;
// String[] out = new String[dataCast.length];
// for (int iii=0; iii<dataCast.length; iii++) {
// out[iii] = Long.toString(dataCast[iii]);
// }
// return out;
// }
// });
// StringSerializer.VALUES_OF.put(float[].class, new Converter() {
// @Override
// public Object valueOf(final String value) {
// return Tools.parseFloatStringList(value);
// }
//
// @Override
// public String toString(final Object data) {
// return Tools.toString((float[])data);
// }
//
// @Override
// public String[] toStringList(final Object data) {
// int[] dataCast = (int[])data;
// String[] out = new String[dataCast.length];
// for (int iii=0; iii<dataCast.length; iii++) {
// out[iii] = Float.toString(dataCast[iii]);
// }
// return out;
// }
// });
// StringSerializer.VALUES_OF.put(Float[].class, new Converter() {
// @Override
// public Object valueOf(final String value) {
// return Tools.parseFloatClassStringList(value);
// }
//
// @Override
// public String toString(final Object data) {
// return Tools.toString((Float[])data);
// }
//
// @Override
// public String[] toStringList(final Object data) {
// Float[] dataCast = (Float[])data;
// String[] out = new String[dataCast.length];
// for (int iii=0; iii<dataCast.length; iii++) {
// out[iii] = Float.toString(dataCast[iii]);
// }
// return out;
// }
// });
// StringSerializer.VALUES_OF.put(double[].class, new Converter() {
// @Override
// public Object valueOf(final String value) {
// return Tools.parseDoubleStringList(value);
// }
//
// @Override
// public String toString(final Object data) {
// return Tools.toString((double[])data);
// }
//
// @Override
// public String[] toStringList(final Object data) {
// int[] dataCast = (int[])data;
// String[] out = new String[dataCast.length];
// for (int iii=0; iii<dataCast.length; iii++) {
// out[iii] = Double.toString(dataCast[iii]);
// }
// return out;
// }
// });
// StringSerializer.VALUES_OF.put(Double[].class, new Converter() {
// @Override
// public Object valueOf(final String value) {
// return Tools.parseDoubleClassStringList(value);
// }
//
// @Override
// public String toString(final Object data) {
// return Tools.toString((Double[])data);
// }
//
// @Override
// public String[] toStringList(final Object data) {
// Double[] dataCast = (Double[])data;
// String[] out = new String[dataCast.length];
// for (int iii=0; iii<dataCast.length; iii++) {
// out[iii] = Double.toString(dataCast[iii]);
// }
// return out;
// }
// });
// StringSerializer.VALUES_OF.put(boolean[].class, new Converter() {
// @Override
// public Object valueOf(final String value) {
// return Tools.parseBooleanStringList(value);
// }
//
// @Override
// public String toString(final Object data) {
// return Tools.toString((boolean[])data);
// }
//
// @Override
// public String[] toStringList(final Object data) {
// boolean[] dataCast = (boolean[])data;
// String[] out = new String[dataCast.length];
// for (int iii=0; iii<dataCast.length; iii++) {
// out[iii] = Boolean.toString(dataCast[iii]);
// }
// return out;
// }
// });
// StringSerializer.VALUES_OF.put(Boolean[].class, new Converter() {
// @Override
// public Object valueOf(final String value) {
// return Tools.parseBooleanClassStringList(value);
// }
//
// @Override
// public String toString(final Object data) {
// return Tools.toString((Boolean[])data);
// }
//
// @Override
// public String[] toStringList(final Object data) {
// Boolean[] dataCast = (Boolean[])data;
// String[] out = new String[dataCast.length];
// for (int iii=0; iii<dataCast.length; iii++) {
// out[iii] = Boolean.toString(dataCast[iii]);
// }
// return out;
// }
// });
// StringSerializer.VALUES_OF.put(String.class, new Converter() {
// @Override
// public Object valueOf(final String value) {
// return value;
// }
//
// @Override
// public String toString(final Object data) {
// return (String)data;
// }
//
// @Override
// public String[] toStringList(final Object data) {
// return new String[] { (String)data };
// }
// });
// StringSerializer.VALUES_OF.put(String[].class, new Converter() {
// @Override
// public Object valueOf(final String value) {
// return value.split(";");
// }
//
// @Override
// public String toString(final Object data) {
// StringBuilder out = new StringBuilder();
// String[] dataCast = (String[])data;
// for (int iii=0; iii<dataCast.length; iii++) {
// if (iii != 0) {
// out.append(";");
// }
// out.append(dataCast[iii]);
// }
// return out.toString();
// }
// @Override
// public String[] toStringList(final Object data) {
// return (String[])data;
//
// }
// });
}
public static boolean contains(final Class<?> 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() {}
}