package com.astamuse.asta4d.data.convertor;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import org.apache.commons.lang3.StringUtils;
public abstract class AbstractString2Java8DateConvertor<T> {
public T convert(String s) throws UnsupportedValueException {
if (StringUtils.isEmpty(s)) {
return null;
}
for (DateTimeFormatter formatter : availableFormatters()) {
try {
T tt = convert2Target(formatter, s);
return tt;
} catch (DateTimeParseException e) {
System.out.println(formatter.toString());
e.printStackTrace();
continue;
}
}
throw new UnsupportedValueException();
}
protected abstract DateTimeFormatter[] availableFormatters();
protected abstract T convert2Target(DateTimeFormatter formatter, String obj);
}