Search in sources :

Example 1 with IdentifiableType

use of oasis.names.tc.ebxml_regrep.xsd.rim._3.IdentifiableType in project nhin-d by DirectProject.

the class DirectDocuments method getSubmitObjectsRequest.

/**
     * Get the metadata represented as a SubmitObjectsRequest object.
     */
public SubmitObjectsRequest getSubmitObjectsRequest() {
    RegistryPackageType registryPackageType = submissionSet.generateRegistryPackageType();
    ClassificationType classificationType = submissionSet.generateClassificationType();
    QName qname = null;
    // Generate ExtrinsicObjectType objects for each document
    qname = new QName(SubmitObjectsRequestEnum.EXTRINSIC_OBJECT.getNamespaceUri(), SubmitObjectsRequestEnum.EXTRINSIC_OBJECT.getName());
    List<JAXBElement<ExtrinsicObjectType>> jaxb_extrinsicObjectTypes = new ArrayList<JAXBElement<ExtrinsicObjectType>>();
    for (DirectDocument2 document : documents) {
        ExtrinsicObjectType extrinsicObjectType = document.getMetadata().generateExtrinsicObjectType();
        JAXBElement<ExtrinsicObjectType> jaxb_extrinsicObjectType = new JAXBElement<ExtrinsicObjectType>(qname, ExtrinsicObjectType.class, extrinsicObjectType);
        jaxb_extrinsicObjectTypes.add(jaxb_extrinsicObjectType);
    }
    // Generate the RegistryPakageType (SubmissionSet) for the group of
    // documents
    qname = new QName(SubmitObjectsRequestEnum.REGISTRY_PACKAGE.getNamespaceUri(), SubmitObjectsRequestEnum.REGISTRY_PACKAGE.getName());
    JAXBElement<RegistryPackageType> jaxb_registryPackageType = new JAXBElement<RegistryPackageType>(qname, RegistryPackageType.class, registryPackageType);
    // Generate the ClassificationType object
    qname = new QName(SubmitObjectsRequestEnum.CLASSIFICATION.getNamespaceUri(), SubmitObjectsRequestEnum.CLASSIFICATION.getName());
    JAXBElement<ClassificationType> jaxb_classificationType = new JAXBElement<ClassificationType>(qname, ClassificationType.class, classificationType);
    // Generate AssociationType1 objects for each document
    qname = new QName(SubmitObjectsRequestEnum.ASSOCIATION.getNamespaceUri(), SubmitObjectsRequestEnum.ASSOCIATION.getName());
    List<JAXBElement<AssociationType1>> jaxb_associationType1s = new ArrayList<JAXBElement<AssociationType1>>();
    for (DirectDocument2 document : documents) {
        AssociationType1 associationType = submissionSet.generateAssociationType(document.getMetadata().getId(), document.getMetadata().getSubmissionSetStatus());
        JAXBElement<AssociationType1> jaxb_AssociationType1 = new JAXBElement<AssociationType1>(qname, AssociationType1.class, associationType);
        jaxb_associationType1s.add(jaxb_AssociationType1);
    }
    SubmitObjectsRequest submitObjectsRequest = new SubmitObjectsRequest();
    RegistryObjectListType registryObjectListType = new RegistryObjectListType();
    List<JAXBElement<? extends IdentifiableType>> elements = registryObjectListType.getIdentifiable();
    elements.addAll(jaxb_extrinsicObjectTypes);
    elements.add(jaxb_registryPackageType);
    elements.add(jaxb_classificationType);
    elements.addAll(jaxb_associationType1s);
    submitObjectsRequest.setRegistryObjectList(registryObjectListType);
    return submitObjectsRequest;
}
Also used : RegistryObjectListType(oasis.names.tc.ebxml_regrep.xsd.rim._3.RegistryObjectListType) IdentifiableType(oasis.names.tc.ebxml_regrep.xsd.rim._3.IdentifiableType) RegistryPackageType(oasis.names.tc.ebxml_regrep.xsd.rim._3.RegistryPackageType) QName(javax.xml.namespace.QName) ArrayList(java.util.ArrayList) AssociationType1(oasis.names.tc.ebxml_regrep.xsd.rim._3.AssociationType1) ExtrinsicObjectType(oasis.names.tc.ebxml_regrep.xsd.rim._3.ExtrinsicObjectType) JAXBElement(javax.xml.bind.JAXBElement) ClassificationType(oasis.names.tc.ebxml_regrep.xsd.rim._3.ClassificationType) SubmitObjectsRequest(oasis.names.tc.ebxml_regrep.xsd.lcm._3.SubmitObjectsRequest)

Example 2 with IdentifiableType

use of oasis.names.tc.ebxml_regrep.xsd.rim._3.IdentifiableType in project nhin-d by DirectProject.

the class DirectDocuments method setValues.

public void setValues(SubmitObjectsRequest submitObjectsRequest) throws MetadataException {
    RegistryObjectListType rol = submitObjectsRequest.getRegistryObjectList();
    List<JAXBElement<? extends IdentifiableType>> elements = rol.getIdentifiable();
    for (JAXBElement<? extends IdentifiableType> element : elements) {
        if (element.getValue() instanceof oasis.names.tc.ebxml_regrep.xsd.rim._3.ExtrinsicObjectType) {
            ExtrinsicObjectType eot = (ExtrinsicObjectType) element.getValue();
            DirectDocument2 document = new DirectDocument2();
            DirectDocument2.Metadata metadata = document.getMetadata();
            metadata.setValues(eot);
            documents.add(document);
        } else if (element.getValue() instanceof oasis.names.tc.ebxml_regrep.xsd.rim._3.RegistryPackageType) {
            RegistryPackageType rpt = (RegistryPackageType) element.getValue();
            SubmissionSet submissionSet = new SubmissionSet();
            submissionSet.setValues(rpt);
            this.submissionSet = submissionSet;
        } else if (element.getValue() instanceof oasis.names.tc.ebxml_regrep.xsd.rim._3.ClassificationType) {
        // Empty in example
        }
    }
    for (JAXBElement<? extends IdentifiableType> element : elements) {
        if (element.getValue() instanceof oasis.names.tc.ebxml_regrep.xsd.rim._3.AssociationType1) {
            AssociationType1 at = (AssociationType1) element.getValue();
            for (SlotType1 slot : at.getSlot()) {
                if (SlotType1Enum.SUBMISSION_SET_STATUS.matches(slot.getName())) {
                    if (slotNotEmpty(slot)) {
                        getDocumentById(at.getTargetObject()).getMetadata().setSubmissionSetStatus(slot.getName());
                    }
                }
            }
        }
    }
}
Also used : RegistryObjectListType(oasis.names.tc.ebxml_regrep.xsd.rim._3.RegistryObjectListType) IdentifiableType(oasis.names.tc.ebxml_regrep.xsd.rim._3.IdentifiableType) RegistryPackageType(oasis.names.tc.ebxml_regrep.xsd.rim._3.RegistryPackageType) RegistryPackageType(oasis.names.tc.ebxml_regrep.xsd.rim._3.RegistryPackageType) AssociationType1(oasis.names.tc.ebxml_regrep.xsd.rim._3.AssociationType1) ExtrinsicObjectType(oasis.names.tc.ebxml_regrep.xsd.rim._3.ExtrinsicObjectType) JAXBElement(javax.xml.bind.JAXBElement) ClassificationType(oasis.names.tc.ebxml_regrep.xsd.rim._3.ClassificationType) SlotType1(oasis.names.tc.ebxml_regrep.xsd.rim._3.SlotType1)

Example 3 with IdentifiableType

use of oasis.names.tc.ebxml_regrep.xsd.rim._3.IdentifiableType in project nhin-d by DirectProject.

the class DefaultXdmXdsTransformer method getDocId.

/**
     * Get the document ID from a SubmitObjectsRequest object.
     * 
     * @param sor
     *            The SubmitObjectsRequest object from which to retrieve the
     *            document ID.
     * @return a document ID.
     */
protected String getDocId(SubmitObjectsRequest submitObjectRequest) {
    if (submitObjectRequest == null) {
        throw new IllegalArgumentException("SubmitObjectRequest must not be null.");
    }
    String ret = null;
    RegistryObjectListType rol = submitObjectRequest.getRegistryObjectList();
    List<JAXBElement<? extends IdentifiableType>> extensible = rol.getIdentifiable();
    for (JAXBElement<? extends IdentifiableType> elem : extensible) {
        String type = elem.getDeclaredType().getName();
        Object value = elem.getValue();
        if (StringUtils.equals(type, "oasis.names.tc.ebxml_regrep.xsd.rim._3.ExtrinsicObjectType")) {
            ret = getDocId((ExtrinsicObjectType) value);
        }
        if (LOGGER.isTraceEnabled()) {
            LOGGER.trace(type + " " + value.toString());
        }
    }
    return ret;
}
Also used : RegistryObjectListType(oasis.names.tc.ebxml_regrep.xsd.rim._3.RegistryObjectListType) IdentifiableType(oasis.names.tc.ebxml_regrep.xsd.rim._3.IdentifiableType) ExtrinsicObjectType(oasis.names.tc.ebxml_regrep.xsd.rim._3.ExtrinsicObjectType) JAXBElement(javax.xml.bind.JAXBElement)

Example 4 with IdentifiableType

use of oasis.names.tc.ebxml_regrep.xsd.rim._3.IdentifiableType in project nhin-d by DirectProject.

the class DefaultXdmXdsTransformerTest method testGetDocId_SubmitObjectsRequest.

/**
     * Test the getDocId(SubmitObjectsRequest) method.
     */
public void testGetDocId_SubmitObjectsRequest() {
    DefaultXdmXdsTransformer transformer = new DefaultXdmXdsTransformer();
    QName qname = null;
    String output = null;
    SubmitObjectsRequest input = null;
    ExternalIdentifierType eit = null;
    RegistryObjectListType registryObject = null;
    RegistryPackageType registryPackageType = null;
    ExtrinsicObjectType extrinsicObjectType = null;
    List<ExternalIdentifierType> externalIdentifiers = null;
    JAXBElement<ExtrinsicObjectType> jaxbExtrinsicObject = null;
    JAXBElement<RegistryPackageType> jaxbRegistryPackageTypeObject = null;
    List<JAXBElement<? extends IdentifiableType>> identifiableList = null;
    registryObject = new RegistryObjectListType();
    identifiableList = registryObject.getIdentifiable();
    eit = new ExternalIdentifierType();
    eit.setIdentificationScheme("urn:uuid:2e82c1f6-a085-4c72-9da3-8640a32e42ab");
    eit.setValue("eitValue");
    extrinsicObjectType = new ExtrinsicObjectType();
    externalIdentifiers = extrinsicObjectType.getExternalIdentifier();
    externalIdentifiers.add(eit);
    qname = new QName("urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0", "ExtrinsicObject");
    jaxbExtrinsicObject = new JAXBElement<ExtrinsicObjectType>(qname, ExtrinsicObjectType.class, extrinsicObjectType);
    registryPackageType = new RegistryPackageType();
    qname = new QName("urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0", "RegistryPackage");
    jaxbRegistryPackageTypeObject = new JAXBElement<RegistryPackageType>(qname, RegistryPackageType.class, registryPackageType);
    identifiableList.add(jaxbRegistryPackageTypeObject);
    identifiableList.add(jaxbExtrinsicObject);
    input = new SubmitObjectsRequest();
    input.setRegistryObjectList(registryObject);
    output = transformer.getDocId(input);
    assertEquals("Output does not match expected", "eitValue", output);
    registryObject = new RegistryObjectListType();
    input = new SubmitObjectsRequest();
    input.setRegistryObjectList(registryObject);
    output = transformer.getDocId(input);
    assertEquals("Output does not match expected", null, output);
}
Also used : RegistryObjectListType(oasis.names.tc.ebxml_regrep.xsd.rim._3.RegistryObjectListType) IdentifiableType(oasis.names.tc.ebxml_regrep.xsd.rim._3.IdentifiableType) QName(javax.xml.namespace.QName) RegistryPackageType(oasis.names.tc.ebxml_regrep.xsd.rim._3.RegistryPackageType) ExtrinsicObjectType(oasis.names.tc.ebxml_regrep.xsd.rim._3.ExtrinsicObjectType) ExternalIdentifierType(oasis.names.tc.ebxml_regrep.xsd.rim._3.ExternalIdentifierType) JAXBElement(javax.xml.bind.JAXBElement) SubmitObjectsRequest(oasis.names.tc.ebxml_regrep.xsd.lcm._3.SubmitObjectsRequest) DefaultXdmXdsTransformer(org.nhindirect.xd.transform.impl.DefaultXdmXdsTransformer)

Example 5 with IdentifiableType

use of oasis.names.tc.ebxml_regrep.xsd.rim._3.IdentifiableType in project ddf by codice.

the class RegistryObjectListWebConverter method convert.

/**
     * This method creates a Map<String, Object> representation of the RegistryObjectListType provided.
     * The following keys will be added to the map (Taken from EbrimConstants):
     * <p>
     * ASSOCIATION_KEY = "Association";
     * EXTRINSIC_OBJECT_KEY = "ExtrinsicObject";
     * ORGANIZATION_KEY = "Organization";
     * PERSON_KEY = "Person";
     * SERVICE_KEY = "Service";
     * <p>
     * <p>
     * Uses:
     * AssociationWebConverter
     * ExtrinsicObjectWebConverter
     * OrganizationWebConverter
     * PersonWebConverter
     * ServiceWebConverter
     *
     * @param registryObjectList the RegistryObjectListType to be converted into a map, null returns empty Map
     * @return Map<String, Object> representation of the RegistryObjectListType provided
     */
public Map<String, Object> convert(RegistryObjectListType registryObjectList) {
    Map<String, Object> registryObjectListMap = new HashMap<>();
    if (registryObjectList == null) {
        return registryObjectListMap;
    }
    List<Map<String, Object>> associations = new ArrayList<>();
    List<Map<String, Object>> extrinsicObjects = new ArrayList<>();
    List<Map<String, Object>> organizations = new ArrayList<>();
    List<Map<String, Object>> people = new ArrayList<>();
    List<Map<String, Object>> services = new ArrayList<>();
    AssociationWebConverter associationConverter = new AssociationWebConverter();
    ExtrinsicObjectWebConverter extrinsicObjectConverter = new ExtrinsicObjectWebConverter();
    OrganizationWebConverter organizationConverter = new OrganizationWebConverter();
    PersonWebConverter personConverter = new PersonWebConverter();
    ServiceWebConverter serviceConverter = new ServiceWebConverter();
    for (JAXBElement<? extends IdentifiableType> identifiable : registryObjectList.getIdentifiable()) {
        RegistryObjectType registryObject = (RegistryObjectType) identifiable.getValue();
        Map<String, Object> identifiableMap;
        if (registryObject instanceof ExtrinsicObjectType) {
            identifiableMap = extrinsicObjectConverter.convert((ExtrinsicObjectType) registryObject);
            if (MapUtils.isNotEmpty(identifiableMap)) {
                extrinsicObjects.add(identifiableMap);
            }
        } else if (registryObject instanceof ServiceType) {
            identifiableMap = serviceConverter.convert((ServiceType) registryObject);
            if (MapUtils.isNotEmpty(identifiableMap)) {
                services.add(identifiableMap);
            }
        } else if (registryObject instanceof OrganizationType) {
            identifiableMap = organizationConverter.convert((OrganizationType) registryObject);
            if (MapUtils.isNotEmpty(identifiableMap)) {
                organizations.add(identifiableMap);
            }
        } else if (registryObject instanceof PersonType) {
            identifiableMap = personConverter.convert((PersonType) registryObject);
            if (MapUtils.isNotEmpty(identifiableMap)) {
                people.add(identifiableMap);
            }
        } else if (registryObject instanceof AssociationType1) {
            identifiableMap = associationConverter.convert((AssociationType1) registryObject);
            if (MapUtils.isNotEmpty(identifiableMap)) {
                associations.add(identifiableMap);
            }
        }
    }
    webMapHelper.putIfNotEmpty(registryObjectListMap, ASSOCIATION_KEY, associations);
    webMapHelper.putIfNotEmpty(registryObjectListMap, EXTRINSIC_OBJECT_KEY, extrinsicObjects);
    webMapHelper.putIfNotEmpty(registryObjectListMap, ORGANIZATION_KEY, organizations);
    webMapHelper.putIfNotEmpty(registryObjectListMap, PERSON_KEY, people);
    webMapHelper.putIfNotEmpty(registryObjectListMap, SERVICE_KEY, services);
    return registryObjectListMap;
}
Also used : HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) AssociationType1(oasis.names.tc.ebxml_regrep.xsd.rim._3.AssociationType1) ExtrinsicObjectType(oasis.names.tc.ebxml_regrep.xsd.rim._3.ExtrinsicObjectType) PersonType(oasis.names.tc.ebxml_regrep.xsd.rim._3.PersonType) OrganizationType(oasis.names.tc.ebxml_regrep.xsd.rim._3.OrganizationType) ServiceType(oasis.names.tc.ebxml_regrep.xsd.rim._3.ServiceType) HashMap(java.util.HashMap) Map(java.util.Map) RegistryObjectType(oasis.names.tc.ebxml_regrep.xsd.rim._3.RegistryObjectType)

Aggregations

ExtrinsicObjectType (oasis.names.tc.ebxml_regrep.xsd.rim._3.ExtrinsicObjectType)7 RegistryObjectListType (oasis.names.tc.ebxml_regrep.xsd.rim._3.RegistryObjectListType)6 JAXBElement (javax.xml.bind.JAXBElement)5 IdentifiableType (oasis.names.tc.ebxml_regrep.xsd.rim._3.IdentifiableType)5 AssociationType1 (oasis.names.tc.ebxml_regrep.xsd.rim._3.AssociationType1)4 RegistryPackageType (oasis.names.tc.ebxml_regrep.xsd.rim._3.RegistryPackageType)3 ArrayList (java.util.ArrayList)2 QName (javax.xml.namespace.QName)2 SubmitObjectsRequest (oasis.names.tc.ebxml_regrep.xsd.lcm._3.SubmitObjectsRequest)2 ClassificationType (oasis.names.tc.ebxml_regrep.xsd.rim._3.ClassificationType)2 OrganizationType (oasis.names.tc.ebxml_regrep.xsd.rim._3.OrganizationType)2 PersonType (oasis.names.tc.ebxml_regrep.xsd.rim._3.PersonType)2 RegistryObjectType (oasis.names.tc.ebxml_regrep.xsd.rim._3.RegistryObjectType)2 ServiceType (oasis.names.tc.ebxml_regrep.xsd.rim._3.ServiceType)2 HashMap (java.util.HashMap)1 Map (java.util.Map)1 ExternalIdentifierType (oasis.names.tc.ebxml_regrep.xsd.rim._3.ExternalIdentifierType)1 SlotType1 (oasis.names.tc.ebxml_regrep.xsd.rim._3.SlotType1)1 DefaultXdmXdsTransformer (org.nhindirect.xd.transform.impl.DefaultXdmXdsTransformer)1