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.commons.ihe.xds.core.transform.requests;
17  
18  import static org.apache.commons.lang3.Validate.notNull;
19  
20  import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest;
21  import org.openehealth.ipf.commons.ihe.xds.core.requests.query.*;
22  import org.openehealth.ipf.commons.ihe.xds.core.requests.query.Query.Visitor;
23  import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.*;
24  
25  /**
26   * Query visitor to transform a query into its ebXML representation.
27   * @author Jens Riemschneider
28   */
29  final class ToEbXMLVisitor implements Visitor {
30      private final EbXMLAdhocQueryRequest ebXML;
31  
32      /**
33       * Constructs the visitor.
34       * @param ebXML
35       *          the ebXML result.
36       */
37      ToEbXMLVisitor(EbXMLAdhocQueryRequest ebXML) {
38          notNull(ebXML, "ebXML cannot be null");
39          this.ebXML = ebXML;
40      }
41  
42      @Override
43      public void visit(FindDocumentsQuery query) {
44          new FindDocumentsQueryTransformer<>().toEbXML(query, ebXML);
45      }
46  
47      @Override
48      public void visit(FindDocumentsForMultiplePatientsQuery query) {
49         new FindDocumentsForMultiplePatientsQueryTransformer().toEbXML(query, ebXML);
50      }
51  
52      @Override
53      public void visit(FindFoldersQuery query) {
54          new FindFoldersQueryTransformer().toEbXML(query, ebXML);                
55      }
56  
57      @Override
58      public void visit(FindFoldersForMultiplePatientsQuery query) {
59          new FindFoldersForMultiplePatientsQueryTransformer().toEbXML(query, ebXML);
60      }
61  
62      @Override
63      public void visit(GetSubmissionSetsQuery query) {
64          new GetSubmissionSetsQueryTransformer().toEbXML(query, ebXML);                
65      }
66  
67      @Override
68      public void visit(GetSubmissionSetAndContentsQuery query) {
69          new GetSubmissionSetAndContentsQueryTransformer().toEbXML(query, ebXML);                
70      }
71  
72      @Override
73      public void visit(GetRelatedDocumentsQuery query) {
74          new GetRelatedDocumentsQueryTransformer().toEbXML(query, ebXML);                
75      }
76  
77      @Override
78      public void visit(GetFoldersQuery query) {
79          new GetFoldersQueryTransformer().toEbXML(query, ebXML);                
80      }
81  
82      @Override
83      public void visit(GetFoldersForDocumentQuery query) {
84          new GetFoldersForDocumentQueryTransformer().toEbXML(query, ebXML);                
85      }
86  
87      @Override
88      public void visit(GetFolderAndContentsQuery query) {
89          new GetFolderAndContentsQueryTransformer().toEbXML(query, ebXML);                
90      }
91  
92      @Override
93      public void visit(GetDocumentsQuery query) {
94          new GetDocumentsQueryTransformer().toEbXML(query, ebXML);                
95      }
96  
97      @Override
98      public void visit(GetDocumentsAndAssociationsQuery query) {
99          new GetDocumentsAndAssociationsQueryTransformer().toEbXML(query, ebXML);                
100     }
101 
102     @Override
103     public void visit(GetAssociationsQuery query) {
104         new GetAssociationsQueryTransformer().toEbXML(query, ebXML);                
105     }
106 
107     @Override
108     public void visit(GetAllQuery query) {
109         new GetAllQueryTransformer().toEbXML(query, ebXML);                
110     }
111 
112     @Override
113     public void visit(FindSubmissionSetsQuery query) {
114         new FindSubmissionSetsQueryTransformer().toEbXML(query, ebXML);                
115     }
116 
117     @Override
118     public void visit(FetchQuery query) {
119         new FetchQueryTransformer().toEbXML(query, ebXML);
120     }
121 
122     @Override
123     public void visit(FindDocumentsByReferenceIdQuery query) {
124         new FindDocumentsByReferenceIdQueryTransformer().toEbXML(query, ebXML);
125     }
126 }