/** {@inheritDoc} */ protected void processAttribute(XMLObject samlObject, Attr attribute) throws UnmarshallingException { EntitiesDescriptor entitiesDescriptor = (EntitiesDescriptor) samlObject; if (attribute.getLocalName().equals(EntitiesDescriptor.ID_ATTRIB_NAME)) { entitiesDescriptor.setID(attribute.getValue()); attribute.getOwnerElement().setIdAttributeNode(attribute, true); } else if (attribute.getLocalName().equals(TimeBoundSAMLObject.VALID_UNTIL_ATTRIB_NAME) && !DatatypeHelper.isEmpty(attribute.getValue())) { entitiesDescriptor.setValidUntil(new DateTime(attribute.getValue(), ISOChronology.getInstanceUTC())); } else if (attribute.getLocalName().equals(CacheableSAMLObject.CACHE_DURATION_ATTRIB_NAME)) { entitiesDescriptor.setCacheDuration(new Long(XMLHelper.durationToLong(attribute.getValue()))); } else if (attribute.getLocalName().equals(EntitiesDescriptor.NAME_ATTRIB_NAME)) { entitiesDescriptor.setName(attribute.getValue()); } else { super.processAttribute(samlObject, attribute); } } }