public static List<ClassificationType> getClassifications(RegistryObjectType ro, String scheme) { List<ClassificationType> result = new ArrayList<ClassificationType>(); List<ClassificationType> classifications = ro.getClassification(); for (int i = 0, len = classifications.size() ; i < len ; i++) { if (classifications.get(i).getClassificationScheme().equals(scheme)) { result.add(classifications.get(i)); } } return result; }
private void copyClassificationType(Set<Classification> classifications, RegistryObjectType roType) { if (classifications != null) { List<ClassificationType> classificationTypes = roType.getClassification(); ClassificationType clType; for (Classification cl: classifications) { clType = toClassificationType(cl); classificationTypes.add(clType); } } }
public static ClassificationType removeClassification(RegistryObjectType ro, String id) { List<ClassificationType> list = ro.getClassification(); for (int i = 0, len = list.size() ; i < len ; i++) { if (list.get(i).getId().equals(id)) { return list.remove(i); } } return null; }
public static void addCodes(String id, RegistryObjectType ro, String type, List<Code> codes) { String objID = ro.getId(); for (int i = 0, len = codes.size() ; i < len ; i++) { ro.getClassification().add(createCodeClassification(id, objID, type, codes.get(i))); } } public static ClassificationType createCodeClassification(String id, String classifiedObjectID, String type, Code code) {
private Author(String id, String classificationScheme, RegistryObjectType ro) { this.id = id; author = Util.createClassification(id, classificationScheme, ro.getId(), ""); ro.getClassification().add(author); }
public static void addCode(String id, RegistryObjectType ro, String type, Code code) { ro.getClassification().add(createCodeClassification(id, ro.getId(), type, code)); } public static void addCodes(String id, RegistryObjectType ro, String type, List<Code> codes) {
private static void checkCodes(RegistryObjectType roType, List<String> requiredCodes) throws XDSException { List<ClassificationType> clList = roType.getClassification(); String objId = roType.getId(); for (ClassificationType cl : clList) { if( objId.equals(cl.getClassifiedObject())) { if (requiredCodes.remove(cl.getClassificationScheme())) { if (cl.getName() == null || cl.getName().getLocalizedString() == null || cl.getName().getLocalizedString().isEmpty()) { throw new XDSException(XDSException.XDS_ERR_REGISTRY_METADATA_ERROR, "Missing code display name in code '"+cl.getNodeRepresentation()+ "(code classification:"+cl.getClassificationScheme(), null); } } } } if (requiredCodes.size() > 0) throw new XDSException(XDSException.XDS_ERR_REGISTRY_METADATA_ERROR, "Missing code values in '"+objId+"'! codes:"+requiredCodes, null); }
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) {