private Object readDataAccordingFieldAnnotation(String data, Method method, Field fieldAnno) {
Class datatype = getDatatype(method, fieldAnno);
FormatContext context = getFormatContext(datatype, fieldAnno);
FixedFormatter formatter = getFixedFormatterInstance(context.getFormatter(), context);
FormatInstructions formatdata = getFormatInstructions(method, fieldAnno);
assertIsPatternRequired(formatdata, context, formatter);
assertIsBooleanRequired(formatdata, context, formatter);
assertIsDecimalRequired(formatdata, context, formatter);
Object loadedData = formatter.parse(fetchData(data, formatdata, context), formatdata);
if (LOG.isDebugEnabled()) {
LOG.debug("the loaded data[" + loadedData + "]");
}
return loadedData;
}