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;
}
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());
}
}
}
}
}
}
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;
}
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);
}
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;
}
Aggregations