public Object getValue(Object data) { Object value = null; if (data instanceof XMLStreamReader) { XMLStreamReader xmler = (XMLStreamReader) data; if (isStringFamilyType()) { value = vmMax > 1 ? TagUtil.getStringArrayTagAttribute(xmler, keyword, (String[]) defaultValue) : TagUtil.getTagAttribute(xmler, keyword, (String) defaultValue); } else if (TagType.DATE.equals(type) || TagType.TIME.equals(type) || TagType.DATETIME.equals(type)) { value = vmMax > 1 ? TagUtil.getDatesFromElement(xmler, keyword, type, (TemporalAccessor[]) defaultValue) : TagUtil.getDateFromElement(xmler, keyword, type, (TemporalAccessor) defaultValue); } else if (TagType.INTEGER.equals(type)) { value = vmMax > 1 ? TagUtil.getIntArrayTagAttribute(xmler, keyword, (int[]) defaultValue) : TagUtil.getIntegerTagAttribute(xmler, keyword, (Integer) defaultValue); } else if (TagType.FLOAT.equals(type)) { value = vmMax > 1 ? TagUtil.getFloatArrayTagAttribute(xmler, keyword, (float[]) defaultValue) : TagUtil.getFloatTagAttribute(xmler, keyword, (Float) defaultValue); } else if (TagType.DOUBLE.equals(type)) { value = vmMax > 1 ? TagUtil.getDoubleArrayTagAttribute(xmler, keyword, (double[]) defaultValue) : TagUtil.getDoubleTagAttribute(xmler, keyword, (Double) defaultValue); } else { value = vmMax > 1 ? TagUtil.getStringArrayTagAttribute(xmler, keyword, (String[]) defaultValue) : TagUtil.getTagAttribute(xmler, keyword, (String) defaultValue); } } return value; }