private Object readValue(XMLStreamReader xmler) {
Object value;
if (isStringFamilyType()) {
value = vmMax > 1 ? TagUtil.getStringArrayTagAttribute(xmler, keyword, (String[]) defaultValue)
: TagUtil.getTagAttribute(xmler, keyword, (String) defaultValue);
} else if (TagType.DICOM_DATE.equals(type) || TagType.DICOM_TIME.equals(type)
|| TagType.DICOM_DATETIME.equals(type)) {
value = vmMax > 1 ? getDatesFromElement(xmler, keyword, type, (TemporalAccessor[]) defaultValue)
: 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 if (TagType.DICOM_SEQUENCE.equals(type)) {
value = TagUtil.getTagAttribute(xmler, keyword, (String) defaultValue);
} else {
value = vmMax > 1 ? TagUtil.getStringArrayTagAttribute(xmler, keyword, (String[]) defaultValue)
: TagUtil.getTagAttribute(xmler, keyword, (String) defaultValue);
}
return value;
}