View Javadoc
1   /*
2    * Copyright 2009 the original author or authors.
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *     
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.openehealth.ipf.platform.camel.ihe.xds.core.converters;
17  
18  import org.apache.camel.Converter;
19  import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.*;
20  import org.openehealth.ipf.commons.ihe.xds.core.requests.*;
21  import org.openehealth.ipf.commons.ihe.xds.core.responses.QueryResponse;
22  import org.openehealth.ipf.commons.ihe.xds.core.responses.Response;
23  import org.openehealth.ipf.commons.ihe.xds.core.responses.RetrievedDocumentSet;
24  import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.lcm.RemoveObjectsRequest;
25  import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.lcm.SubmitObjectsRequest;
26  import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest;
27  import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryResponse;
28  import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.rs.RegistryResponseType;
29  import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.*;
30  import org.openehealth.ipf.commons.ihe.xds.core.transform.responses.QueryResponseTransformer;
31  import org.openehealth.ipf.commons.ihe.xds.core.transform.responses.ResponseTransformer;
32  import org.openehealth.ipf.commons.ihe.xds.core.transform.responses.RetrieveDocumentSetResponseTransformer;
33  
34  /**
35   * Camel type converters for EbXML 3.0.
36   * <p>
37   * There are three types of classes for EbXML:
38   * <li> The version dependent classes from the schema files
39   * <li> The version independent classes
40   * <li> The meta data classes
41   * All of these can be converted into each other with the appropriate factories or constructors.
42   * @author Jens Riemschneider
43   */
44  @Converter
45  public class EbXML30Converters {
46      private final static EbXMLFactory30 factory = new EbXMLFactory30();
47      
48      /**
49       * Standard Camel converter for the Provide and Register Document Set request.
50       * @param in
51       *          a version independent request object. 
52       * @return an ebXML 3.0 object.
53       */
54      @Converter
55      public static ProvideAndRegisterDocumentSetRequestType convert(ProvideAndRegisterDocumentSet in) {
56          ProvideAndRegisterDocumentSetTransformer transformer = new ProvideAndRegisterDocumentSetTransformer(factory);
57          return (ProvideAndRegisterDocumentSetRequestType) transformer.toEbXML(in).getInternal();                
58      }
59      
60      /**
61       * Standard Camel converter for the Provide and Register Document Set request.
62       * @param in
63       *          an ebXML 3.0 object.
64       * @return a version independent request object. 
65       */
66      @Converter
67      public static ProvideAndRegisterDocumentSet convert(ProvideAndRegisterDocumentSetRequestType in) {
68          ProvideAndRegisterDocumentSetTransformer transformer = new ProvideAndRegisterDocumentSetTransformer(factory);
69          return transformer.fromEbXML(new EbXMLProvideAndRegisterDocumentSetRequest30(in));        
70      }
71  
72      /**
73       * Standard Camel converter for the Register Document Set request.
74       * @param in
75       *          a version independent request object. 
76       * @return an ebXML 3.0 object.
77       */
78      @Converter
79      public static SubmitObjectsRequest convert(RegisterDocumentSet in) {
80          RegisterDocumentSetTransformer transformer = new RegisterDocumentSetTransformer(factory);
81          return (SubmitObjectsRequest) transformer.toEbXML(in).getInternal();
82      }
83  
84      /**
85       * Standard Camel converter for the Register Document Set request.
86       * @param in
87       *          an ebXML 3.0 object.
88       * @return a version independent request object. 
89       */
90      @Converter
91      public static RegisterDocumentSet convert(SubmitObjectsRequest in) {
92          RegisterDocumentSetTransformer transformer = new RegisterDocumentSetTransformer(factory);
93          return transformer.fromEbXML(new EbXMLSubmitObjectsRequest30(in));
94      }
95  
96      /**
97       * Standard Camel converter for the Registry response.
98       * @param in
99       *          a version independent response object. 
100      * @return an ebXML 3.0 object.
101      */
102     @Converter
103     public static RegistryResponseType convert(Response in) {
104         ResponseTransformer transformer = new ResponseTransformer(factory);
105         return (RegistryResponseType) transformer.toEbXML(in).getInternal();
106     }
107 
108     /**
109      * Standard Camel converter for the Registry response.
110      * @param in
111      *          an ebXML 3.0 object. 
112      * @return a version independent response object.
113      */
114     @Converter
115     public static Response convert(RegistryResponseType in) {
116         ResponseTransformer transformer = new ResponseTransformer(factory);
117         return transformer.fromEbXML(new EbXMLRegistryResponse30(in));
118     }
119 
120     /**
121      * Standard Camel converter for the Query Registry request.
122      * @param in
123      *          a version independent request object. 
124      * @return an ebXML 3.0 object.
125      */
126     @Converter
127     public static AdhocQueryRequest convert(QueryRegistry in) {
128         QueryRegistryTransformer transformer = new QueryRegistryTransformer();
129         return (AdhocQueryRequest)transformer.toEbXML(in).getInternal(); 
130     }
131     
132     /**
133      * Standard Camel converter for the Query Registry request.
134      * @param in
135      *          an ebXML 3.0 object. 
136      * @return a version independent request object.
137      */
138     @Converter
139     public static QueryRegistry convert(AdhocQueryRequest in) {
140         QueryRegistryTransformer transformer = new QueryRegistryTransformer();
141         return transformer.fromEbXML(new EbXMLAdhocQueryRequest30(in));
142     }
143     
144     /**
145      * Standard Camel converter for the Query response.
146      * @param in
147      *          a version independent response object. 
148      * @return an ebXML 3.0 object.
149      */
150     @Converter
151     public static AdhocQueryResponse convert(QueryResponse in) {
152         QueryResponseTransformer transformer = new QueryResponseTransformer(factory);
153         return (AdhocQueryResponse) transformer.toEbXML(in).getInternal();
154     }
155     
156     /**
157      * Standard Camel converter for the Query response.
158      * @param in
159      *          an ebXML 3.0 object. 
160      * @return a version independent response object.
161      */
162     @Converter
163     public static QueryResponse convertToQueryResponse(AdhocQueryResponse in) {
164         QueryResponseTransformer transformer = new QueryResponseTransformer(factory);
165         return transformer.fromEbXML(new EbXMLQueryResponse30(in));
166     }
167     
168     /**
169      * Standard Camel converter for the Retrieve Document Set request.
170      * @param in
171      *          a version independent request object. 
172      * @return an ebXML 3.0 object.
173      */
174     @Converter
175     public static RetrieveDocumentSetRequestType convert(RetrieveDocumentSet in) {
176         RetrieveDocumentSetRequestTransformer transformer = new RetrieveDocumentSetRequestTransformer(factory);
177         return (RetrieveDocumentSetRequestType) transformer.toEbXML(in).getInternal();
178     }
179     
180     /**
181      * Standard Camel converter for the Retrieve Document Set request.
182      * @param in
183      *          an ebXML 3.0 object. 
184      * @return a version independent request object.
185      */
186     @Converter
187     public static RetrieveDocumentSet convert(RetrieveDocumentSetRequestType in) {
188         RetrieveDocumentSetRequestTransformer transformer = new RetrieveDocumentSetRequestTransformer(factory);
189         return transformer.fromEbXML(new EbXMLNonconstructiveDocumentSetRequest30<>(in));
190     }
191 
192     /**
193      * Standard Camel converter for the Remove Documents request.
194      * @param in
195      *          a version independent request object.
196      * @return an ebXML 3.0 object.
197      */
198     @Converter
199     public static RemoveDocumentsRequestType convert(RemoveDocuments in) {
200         RemoveDocumentsRequestTransformer transformer = new RemoveDocumentsRequestTransformer(factory);
201         return (RemoveDocumentsRequestType) transformer.toEbXML(in).getInternal();
202     }
203 
204     /**
205      * Standard Camel converter for the Remove Documents request.
206      * @param in
207      *          an ebXML 3.0 object.
208      * @return a version independent request object.
209      */
210     @Converter
211     public static RemoveDocuments convert(RemoveDocumentsRequestType in) {
212         RemoveDocumentsRequestTransformer transformer = new RemoveDocumentsRequestTransformer(factory);
213         return transformer.fromEbXML(new EbXMLNonconstructiveDocumentSetRequest30<>(in));
214     }
215 
216     /**
217      * Standard Camel converter for the Retrieve Document Set response.
218      * @param in
219      *          a version independent response object. 
220      * @return an ebXML 3.0 object.
221      */
222     @Converter
223     public static RetrieveDocumentSetResponseType convert(RetrievedDocumentSet in) {
224         RetrieveDocumentSetResponseTransformer transformer = new RetrieveDocumentSetResponseTransformer(factory);
225         return (RetrieveDocumentSetResponseType) transformer.toEbXML(in).getInternal();
226     }
227     
228     /**
229      * Standard Camel converter for the Retrieve Document Set response.
230      * @param in
231      *          an ebXML 3.0 object. 
232      * @return a version independent response object.
233      */
234     @Converter
235     public static RetrievedDocumentSet convert(RetrieveDocumentSetResponseType in) {
236         RetrieveDocumentSetResponseTransformer transformer = new RetrieveDocumentSetResponseTransformer(factory);
237         return transformer.fromEbXML(new EbXMLRetrieveDocumentSetResponse30(in));
238     }
239 
240     /**
241      * Standard Camel converter for the Retrieve Imaging Document Set request.
242      * @param in    A version independent request object
243      * @return an ebXML 3.0 object.
244      */
245     @Converter
246     public static RetrieveImagingDocumentSetRequestType convert(RetrieveImagingDocumentSet in) {
247         RetrieveImagingDocumentSetRequestTransformer transformer = new RetrieveImagingDocumentSetRequestTransformer(factory);
248         return (RetrieveImagingDocumentSetRequestType) transformer.toEbXML(in).getInternal();
249     }
250 
251     /**
252      * Standard Camel converter for the Retrieve Imaging Document Set request.
253      * @param in    An ebXML 3.0 object.
254      * @return a version independent request object.
255      */
256     @Converter
257     public static RetrieveImagingDocumentSet convert(RetrieveImagingDocumentSetRequestType in) {
258         RetrieveImagingDocumentSetRequestTransformer transformer = new RetrieveImagingDocumentSetRequestTransformer(factory);
259         return transformer.fromEbXML(new EbXMLRetrieveImagingDocumentSetRequest30(in));
260     }
261 
262     /**
263      * Standard Camel converter for the Remove Objects request.
264      * @param in    A version independent request object
265      * @return an ebXML 3.0 object.
266      */
267     @Converter
268     public static RemoveObjectsRequest convert(RemoveMetadata in) {
269         RemoveMetadataRequestTransformer transformer = new RemoveMetadataRequestTransformer();
270         return (RemoveObjectsRequest) transformer.toEbXML(in).getInternal();
271     }
272 
273     /**
274      * Standard Camel converter for the Remove Document Set request.
275      * @param in    An ebXML 3.0 object.
276      * @return a version independent request object.
277      */
278     @Converter
279     public static RemoveMetadata convert(RemoveObjectsRequest in) {
280         RemoveMetadataRequestTransformer transformer = new RemoveMetadataRequestTransformer();
281         return transformer.fromEbXML(new EbXMLRemoveMetadataRequest30(in));
282     }
283 
284 }
285