public static String getExternalIdentifierValue(String urn, RegistryObjectType ro) { List<ExternalIdentifierType> list = ro.getExternalIdentifier(); ExternalIdentifierType ei; for ( int i = 0, len = list.size() ; i < len ; i++ ) { ei = list.get(i); if ( ei.getIdentificationScheme().equals(urn)) { return ei.getValue(); } } return null; } public static String setExternalIdentifierValue(String urn, String value, RegistryObjectType ro) {
private static void checkExternalIdentifiers(RegistryObjectType roType, List<String> requiredExternalIdentifiers) throws XDSException { List<ExternalIdentifierType> eiList = roType.getExternalIdentifier(); for (ExternalIdentifierType ei : eiList) { requiredExternalIdentifiers.remove(ei.getIdentificationScheme()); } if (requiredExternalIdentifiers.size() > 0) throw new XDSException(XDSException.XDS_ERR_REGISTRY_METADATA_ERROR, "Missing attributes in '"+roType.getId()+"'! codes:"+requiredExternalIdentifiers, null); }
public static String setExternalIdentifierValue(String urn, String value, RegistryObjectType ro) { List<ExternalIdentifierType> list = ro.getExternalIdentifier(); ExternalIdentifierType ei; for ( int i = 0, len = list.size() ; i < len ; i++ ) { ei = list.get(i); if ( ei.getIdentificationScheme().equals(urn)) { String oldValue = ei.getValue(); ei.setValue(value); return oldValue; } } ei = new ExternalIdentifierType(); ei.setIdentificationScheme(urn); ei.setValue(value); list.add(ei); return null; }
private void copyExternalIdentifierType(Set<ExternalIdentifier> externalIdentifiers, RegistryObjectType roType) { if (externalIdentifiers != null) { List<ExternalIdentifierType> eiTypes = roType.getExternalIdentifier(); ExternalIdentifierType eiType; for (ExternalIdentifier ei : externalIdentifiers) { eiType = factory.createExternalIdentifierType(); toEbXmlObj(ei, eiType); if (ei.getIdentificationScheme() != null) { eiType.setIdentificationScheme(ei.getIdentificationScheme().getId()); } else { log.error("IdentificationScheme is null! ExternalIdentifier id:"+ei.getId()); eiType.setIdentificationScheme("urn:willi:12345-abcd-123"); } eiType.setValue(ei.getValue()); if (ei.getRegistryObject() != null) { eiType.setRegistryObject(ei.getRegistryObject().getId()); } else { log.error("RegistryObject is null! ExternalIdentifier id:"+ei.getId()); eiType.setRegistryObject("urn:willi:12345-abcd-456"); } eiTypes.add(eiType); } } }
public void toPersistenceObj(RegistryObjectType roType, RegistryObject ro) throws XDSException { toPersistenceIdentifiable(roType, ro); ro.setClassifications(new HashSet<Classification>()); ro.setDescription(new HashSet<Description>()); ro.setExternalIdentifiers(new HashSet<ExternalIdentifier>()); ro.setLid(roType.getLid() == null ? ro.getId() : roType.getLid());//TODO if no LID, check if older RegistryObject exists and use this Lid! ro.setObjectType(roType.getObjectType()); ro.setStatus("urn:oasis:names:tc:ebxml-regrep:StatusType:Approved"); copyName(roType.getName(), ro); copyDescriptions(roType.getDescription(), ro); copyClassifications(roType.getClassification(), ro); copyExternalIdentifier(roType.getExternalIdentifier(), ro); //TODO VersionInfo ro.setVersionName("1.0"); ro.setComment("Initial Version"); } public void toPersistenceIdentifiable(IdentifiableType roType, Identifiable ro) {
list = ((RegistryObjectType)obj).getExternalIdentifier(); if (list != null) { for (ExternalIdentifierType eiType : list) {