KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jaspersoft > jasperserver > api > metadata > jasperreports > domain > impl > RepoReportUnit


1 /*
2  * Copyright (C) 2006 JasperSoft http://www.jaspersoft.com
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed WITHOUT ANY WARRANTY; and without the
10  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11  * See the GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, see http://www.gnu.org/licenses/gpl.txt
15  * or write to:
16  *
17  * Free Software Foundation, Inc.,
18  * 59 Temple Place - Suite 330,
19  * Boston, MA USA 02111-1307
20  */

21 package com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.impl;
22
23 import java.util.ArrayList JavaDoc;
24 import java.util.Iterator JavaDoc;
25 import java.util.List JavaDoc;
26
27 import com.jaspersoft.jasperserver.api.common.domain.ValidationResult;
28 import com.jaspersoft.jasperserver.api.metadata.common.domain.Resource;
29 import com.jaspersoft.jasperserver.api.metadata.common.domain.ResourceReference;
30 import com.jaspersoft.jasperserver.api.metadata.common.service.ResourceFactory;
31 import com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.ReferenceResolver;
32 import com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoFileResource;
33 import com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoInputControl;
34 import com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoQuery;
35 import com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoResource;
36 import com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.ReportUnit;
37 import com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.impl.datasource.RepoReportDataSource;
38
39
40 /**
41  * @author Teodor Danciu (teodord@users.sourceforge.net)
42  * @version $Id: RepoReportUnit.java 4335 2006-08-27 12:04:14Z swood $
43  *
44  * @hibernate.joined-subclass table="ReportUnit"
45  * @hibernate.joined-subclass-key column="id"
46  */

47 public class RepoReportUnit extends RepoResource
48 {
49
50     private RepoReportDataSource dataSource = null;
51     private RepoQuery query = null;
52     private List JavaDoc resources;
53     private List JavaDoc inputControls;
54     private RepoFileResource mainReport = null;
55     private String JavaDoc inputControlRenderingView;
56     private String JavaDoc reportRenderingView;
57     
58     public RepoReportUnit() {
59     }
60     
61     /**
62      * @hibernate.many-to-one
63      * column="reportDataSource"
64      */

65     public RepoReportDataSource getDataSource()
66     {
67         return dataSource;
68     }
69     
70     /**
71      *
72      */

73     public void setDataSource(RepoReportDataSource dataSource)
74     {
75         this.dataSource = dataSource;
76     }
77     
78     /**
79      * @hibernate.many-to-one
80      * column="query"
81      */

82     public RepoQuery getQuery()
83     {
84         return query;
85     }
86     
87     public void setQuery(RepoQuery query)
88     {
89         this.query = query;
90     }
91     
92     /**
93      * @hibernate.list table="ReportUnitInputControl"
94      * @hibernate.key column="report_unit_id"
95      * @hibernate.many-to-many column="input_control_id" class="com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoInputControl"
96      * @hibernate.list-index column="control_index"
97      */

98     public List JavaDoc getInputControls()
99     {
100         return inputControls;
101     }
102
103     public void setInputControls(List JavaDoc inputControls)
104     {
105         this.inputControls = inputControls;
106     }
107     
108     /**
109      * @hibernate.list table="Report_Unit_Resource"
110      * @hibernate.key column="report_unit_id"
111      * @hibernate.many-to-many column="resource_id" class="com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoFileResource"
112      * @hibernate.list-index column="resource_index"
113      */

114     public List JavaDoc getResources()
115     {
116         return resources;
117     }
118
119     public void setResources(List JavaDoc resources)
120     {
121         this.resources = resources;
122     }
123
124     
125     /**
126      * @hibernate.many-to-one
127      * column="mainReport"
128      */

129     public RepoFileResource getMainReport()
130     {
131         return mainReport;
132     }
133
134     /**
135      *
136      */

137     public void setMainReport(RepoFileResource mainReport)
138     {
139         this.mainReport = mainReport;
140     }
141
142     /**
143      * @hibernate.property
144      * column="controlrenderer" type="string" length="100"
145      *
146      * @return Returns the inputControlRenderingView.
147      */

148     public String JavaDoc getInputControlRenderingView() {
149         return inputControlRenderingView;
150     }
151
152     /**
153      * @param inputControlRenderingView The inputControlRenderingView to set.
154      */

155     public void setInputControlRenderingView(String JavaDoc inputControlRenderingView) {
156         this.inputControlRenderingView = inputControlRenderingView;
157     }
158
159     /**
160      * @hibernate.property
161      * column="reportrenderer" type="string" length="100"
162      *
163      * @return Returns the reportRenderingView.
164      */

165     public String JavaDoc getReportRenderingView() {
166         return reportRenderingView;
167     }
168
169     /**
170      * @param reportRenderingView The reportRenderingView to set.
171      */

172     public void setReportRenderingView(String JavaDoc reportRenderingView) {
173         this.reportRenderingView = reportRenderingView;
174     }
175
176     public ValidationResult validate() {
177         return null;
178     }
179     
180
181     protected Class JavaDoc getClientItf() {
182         return ReportUnit.class;
183     }
184
185     
186     protected void copyTo(Resource clientRes, ResourceFactory resourceFactory) {
187         super.copyTo(clientRes, resourceFactory);
188
189         ReportUnit unit = (ReportUnit) clientRes;
190         unit.setDataSource(getClientReference(getDataSource(), resourceFactory));
191         unit.setMainReport(getClientReference(getMainReport(), resourceFactory));
192         unit.setQuery(getClientReference(getQuery(), resourceFactory));
193
194         List JavaDoc resList = getResources();
195         for (Iterator JavaDoc it = resList.iterator(); it.hasNext();) {
196             RepoFileResource fileRes = (RepoFileResource) it.next();
197             unit.addResource(getClientReference(fileRes, resourceFactory));
198         }
199         
200         List JavaDoc inputCtrls = getInputControls();
201         for (Iterator JavaDoc it = inputCtrls.iterator(); it.hasNext();) {
202             RepoInputControl inputControl = (RepoInputControl) it.next();
203             unit.addInputControl(getClientReference(inputControl, resourceFactory));
204         }
205         
206         unit.setInputControlRenderingView(getInputControlRenderingView());
207         unit.setReportRenderingView(getReportRenderingView());
208         
209     }
210     
211     protected void copyFrom(Resource clientRes, ReferenceResolver referenceResolver) {
212         super.copyFrom(clientRes, referenceResolver);
213         
214         ReportUnit unit = (ReportUnit) clientRes;
215
216         copyResources(referenceResolver, unit);
217         copyDataSource(referenceResolver, unit);
218         copyMainReport(referenceResolver, unit);
219         
220         ResourceReference unitQuery = unit.getQuery();
221         setQuery((RepoQuery) getReference(unitQuery, RepoQuery.class, referenceResolver));
222         
223         List JavaDoc clientInputCtrls = unit.getInputControls();
224         List JavaDoc inputCtrls = new ArrayList JavaDoc();
225         if (clientInputCtrls != null && !clientInputCtrls.isEmpty()) {
226             for (Iterator JavaDoc it = clientInputCtrls.iterator(); it.hasNext();) {
227                 ResourceReference inputCtrlRef = (ResourceReference) it.next();
228                 inputCtrls.add(getReference(inputCtrlRef, RepoInputControl.class, referenceResolver));
229             }
230         }
231         setInputControls(inputCtrls);
232         
233         setInputControlRenderingView(unit.getInputControlRenderingView());
234         setReportRenderingView(unit.getReportRenderingView());
235     }
236
237     private void copyMainReport(ReferenceResolver referenceResolver, ReportUnit unit) {
238         ResourceReference report = unit.getMainReport();
239         RepoFileResource repoReport = (RepoFileResource) getReference(report, RepoFileResource.class, referenceResolver);
240         setMainReport(repoReport);
241     }
242
243     private void copyDataSource(ReferenceResolver referenceResolver, ReportUnit unit) {
244         ResourceReference ds = unit.getDataSource();
245         RepoReportDataSource repoDS = (RepoReportDataSource) getReference(ds, RepoReportDataSource.class, referenceResolver);
246         setDataSource(repoDS);
247     }
248
249     private void copyResources(ReferenceResolver referenceResolver, ReportUnit unit) {
250         List JavaDoc clientResources = unit.getResources();
251         List JavaDoc resList = new ArrayList JavaDoc();
252         if (clientResources != null && !clientResources.isEmpty()) {
253             for (Iterator JavaDoc it = clientResources.iterator(); it.hasNext();) {
254                 ResourceReference resourceRef = (ResourceReference) it.next();
255                 RepoFileResource repoRes = (RepoFileResource) getReference(resourceRef, RepoFileResource.class, referenceResolver);
256                 resList.add(repoRes);
257             }
258         }
259         setResources(resList);
260     }
261
262 }
263
Popular Tags