use of javax.xml.bind.JAXBElement 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 javax.xml.bind.JAXBElement 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 javax.xml.bind.JAXBElement 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 javax.xml.bind.JAXBElement in project nhin-d by DirectProject.
the class XmlUtils method marshal.
/**
* Marshal an object into an XML string.
*
* @param altName
* The altName.
* @param jaxb
* The object to marshal.
* @param factory
* The factory class.
* @return a marshaled string from the object.
*/
@SuppressWarnings("unchecked")
public static String marshal(QName altName, Object jaxb, Class<?> factory) {
String ret = null;
try {
javax.xml.bind.JAXBContext jc = javax.xml.bind.JAXBContext.newInstance(factory);
Marshaller u = jc.createMarshaller();
StringWriter sw = new StringWriter();
u.marshal(new JAXBElement(altName, jaxb.getClass(), jaxb), sw);
StringBuffer sb = sw.getBuffer();
ret = new String(sb);
} catch (Exception ex) {
if (LOGGER.isWarnEnabled())
LOGGER.warn("Failed to marshal message.", ex);
}
return ret;
}
use of javax.xml.bind.JAXBElement in project midpoint by Evolveum.
the class PropertySimpleValueFilterType method copyOf.
/**
* Creates and returns a deep copy of a given {@code JAXBElement} instance.
*
* @param element
* The instance to copy or {@code null}.
* @return
* A deep copy of {@code element} or {@code null} if {@code element} is {@code null}.
*/
@SuppressWarnings("unchecked")
private static JAXBElement copyOf(final JAXBElement element) {
// CC-XJC Version 2.0 Build 2011-09-16T18:27:24+0000
if (element != null) {
final JAXBElement copy = new JAXBElement(element.getName(), element.getDeclaredType(), element.getScope(), element.getValue());
copy.setNil(element.isNil());
copy.setValue(copyOf(copy.getValue()));
return copy;
}
return null;
}
Aggregations