in jbatch/src/main/java/org/apache/batchee/container/services/data/DefaultDataRepresentationService.java [88:132]
public <T> T toJavaRepresentation(byte[] internalRepresentation) {
if (internalRepresentation == null) {
return null;
}
T data = null;
String stringRep = new String(internalRepresentation, UTF8_CHARSET);
if (stringRep.startsWith(BATCHEE_DATA_PREFIX)) {
String dataVal = stringRep.substring(BATCHEE_DATA_PREFIX.length());
String typeVal = dataVal.substring(0, dataVal.indexOf(BATCHEE_SPLIT_TOKEN));
String valueVal = dataVal.substring(dataVal.indexOf(BATCHEE_SPLIT_TOKEN) + BATCHEE_SPLIT_TOKEN.length());
data = convertBackJavaNativeTypes(typeVal, valueVal);
if (data == null) {
data = convertBackJava7DateTypes(typeVal, valueVal);
}
if (data == null) {
data = convertBackJava8DateTypes(typeVal, valueVal);
}
if (data == null) {
data = convertBackJodaDateTypes(typeVal, valueVal);
}
if (data == null) {
data = convertBackCustomEnumTypes(typeVal, valueVal);
}
if (data == null) {
data = convertBackCustomTypes(typeVal, valueVal);
}
}
if (data == null) {
data = convertBackSerializableObjectTypes(internalRepresentation);
}
// as last resort we do a simple java deserialisation
if (data == null) {
throw new IllegalStateException("Cannot convert back BatchEE data: " + internalRepresentation);
}
return data;
}