1 21 package com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.impl; 22 23 import java.util.ArrayList ; 24 import java.util.Iterator ; 25 import java.util.List ; 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 47 public class RepoReportUnit extends RepoResource 48 { 49 50 private RepoReportDataSource dataSource = null; 51 private RepoQuery query = null; 52 private List resources; 53 private List inputControls; 54 private RepoFileResource mainReport = null; 55 private String inputControlRenderingView; 56 private String reportRenderingView; 57 58 public RepoReportUnit() { 59 } 60 61 65 public RepoReportDataSource getDataSource() 66 { 67 return dataSource; 68 } 69 70 73 public void setDataSource(RepoReportDataSource dataSource) 74 { 75 this.dataSource = dataSource; 76 } 77 78 82 public RepoQuery getQuery() 83 { 84 return query; 85 } 86 87 public void setQuery(RepoQuery query) 88 { 89 this.query = query; 90 } 91 92 98 public List getInputControls() 99 { 100 return inputControls; 101 } 102 103 public void setInputControls(List inputControls) 104 { 105 this.inputControls = inputControls; 106 } 107 108 114 public List getResources() 115 { 116 return resources; 117 } 118 119 public void setResources(List resources) 120 { 121 this.resources = resources; 122 } 123 124 125 129 public RepoFileResource getMainReport() 130 { 131 return mainReport; 132 } 133 134 137 public void setMainReport(RepoFileResource mainReport) 138 { 139 this.mainReport = mainReport; 140 } 141 142 148 public String getInputControlRenderingView() { 149 return inputControlRenderingView; 150 } 151 152 155 public void setInputControlRenderingView(String inputControlRenderingView) { 156 this.inputControlRenderingView = inputControlRenderingView; 157 } 158 159 165 public String getReportRenderingView() { 166 return reportRenderingView; 167 } 168 169 172 public void setReportRenderingView(String reportRenderingView) { 173 this.reportRenderingView = reportRenderingView; 174 } 175 176 public ValidationResult validate() { 177 return null; 178 } 179 180 181 protected Class 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 resList = getResources(); 195 for (Iterator it = resList.iterator(); it.hasNext();) { 196 RepoFileResource fileRes = (RepoFileResource) it.next(); 197 unit.addResource(getClientReference(fileRes, resourceFactory)); 198 } 199 200 List inputCtrls = getInputControls(); 201 for (Iterator 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 clientInputCtrls = unit.getInputControls(); 224 List inputCtrls = new ArrayList (); 225 if (clientInputCtrls != null && !clientInputCtrls.isEmpty()) { 226 for (Iterator 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 clientResources = unit.getResources(); 251 List resList = new ArrayList (); 252 if (clientResources != null && !clientResources.isEmpty()) { 253 for (Iterator 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 |