KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > calipso > reportgenerator > userinterface > DefinitionEditor


1 package com.calipso.reportgenerator.userinterface;
2
3 import org.apache.commons.vfs.FileSystemManager;
4 import org.apache.commons.vfs.FileObject;
5 import org.apache.commons.vfs.FileSystemException;
6 import org.exolab.castor.xml.Unmarshaller;
7 import com.calipso.reportgenerator.services.FileSystemResolver;
8 import com.calipso.reportgenerator.common.ReportManagerLogger;
9 import com.calipso.reportgenerator.common.LanguageTraslator;
10 import com.calipso.reportgenerator.common.InfoException;
11 import com.calipso.reportgenerator.common.ReportGeneratorConfiguration;
12 import com.calipso.reportgenerator.reportdefinitions.ReportDefinition;
13 import com.calipso.reportgenerator.reportdefinitions.ReportSourceDefinition;
14
15 import java.io.FileReader JavaDoc;
16 import java.io.IOException JavaDoc;
17
18 /**
19  * User: alorenzo
20  * Date: 05-ene-2006
21  * Time: 15:09:11
22  *
23  */

24 public class DefinitionEditor {
25
26      private static String JavaDoc nameFileReportDefinitionSchema = "ReportDefinition.xsd";
27      private static String JavaDoc nameFileReportSourceDefinitionSchema = "ReportSourceDefinition.xsd";
28      private static String JavaDoc pathSchema;
29      private static String JavaDoc reportDefinitionID;
30      private static String JavaDoc reportSourceDefinitionID;
31      private static ReportGeneratorConfiguration reportGeneratorConfiguration;
32
33      public static void reportDefinitionEditor(String JavaDoc reportDefID, ReportGeneratorConfiguration reportGenerator) throws InfoException {
34          try{
35            reportDefinitionID = reportDefID;
36            reportGeneratorConfiguration = reportGenerator;
37            pathSchema = reportGenerator.getSourceReportSchemasPath();
38            String JavaDoc pathReportDefinition = pathReportDefinitionResolver();
39            String JavaDoc pathReportDefinitionSchema = pathReportDefinitionSchemaResolver();
40            if (!(pathReportDefinition.equalsIgnoreCase(""))){
41              runPollo(pathReportDefinition,pathReportDefinitionSchema, reportGenerator.getPolloPath());
42            }
43          } catch (Exception JavaDoc e) {
44              throw new InfoException(LanguageTraslator.traslate("541"), e);
45          }
46      }
47
48     private static String JavaDoc pathReportDefinitionResolver() throws InfoException {
49         String JavaDoc pathReportDefinition = "";
50         try {
51             FileSystemManager fileSystemManager = FileSystemResolver.getFileSystemManager(reportGeneratorConfiguration);
52             FileObject fileObject = fileSystemManager.resolveFile(reportGeneratorConfiguration.getSourceReportDefinitionsPath());
53             String JavaDoc fileName;
54             for (int i = 0; i < fileObject.getChildren().length; i++) {
55               fileName = fileObject.getChildren()[i].getName().getBaseName();
56               if(!fileName.endsWith(".xml")) {
57                   continue;
58               }
59               String JavaDoc reportDefinitionIDViewer;
60               reportDefinitionIDViewer = ((ReportDefinition) Unmarshaller.unmarshal(ReportDefinition.class, new FileReader JavaDoc(reportGeneratorConfiguration.getSourceReportDefinitionsPath() + "/" + fileName))).getId();
61               if (reportDefinitionID.equalsIgnoreCase(reportDefinitionIDViewer)){
62                   pathReportDefinition = reportGeneratorConfiguration.getSourceReportDefinitionsPath() + "/" + fileName;
63               }
64             }
65         } catch (Exception JavaDoc e) {
66           throw new InfoException(LanguageTraslator.traslate("542"), e);
67         }
68         return pathReportDefinition;
69     }
70
71     private static String JavaDoc pathReportDefinitionSchemaResolver() throws InfoException {
72         String JavaDoc pathReportDefinitionSchema = "";
73         try {
74             pathReportDefinitionSchema = pathSchema + "/" + nameFileReportDefinitionSchema;
75             new FileReader JavaDoc (pathReportDefinitionSchema);
76          } catch (Exception JavaDoc e){
77             pathReportDefinitionSchema = "";
78          }
79          return pathReportDefinitionSchema;
80     }
81
82     public static void reportSourceDefinitionEditor(String JavaDoc reportDefID, ReportGeneratorConfiguration reportGenerator) throws InfoException {
83         try{
84           reportDefinitionID = reportDefID;
85           reportGeneratorConfiguration = reportGenerator;
86           pathSchema = reportGenerator.getSourceReportSchemasPath();
87           String JavaDoc pathReportDefinition = pathReportDefinitionResolver();
88           if (!(pathReportDefinition.equalsIgnoreCase(""))){
89              reportSourceDefinitionID = ((ReportDefinition) Unmarshaller.unmarshal(ReportDefinition.class, new FileReader JavaDoc(pathReportDefinition))).getReportSource();
90              String JavaDoc pathReportSourceDefinition = pathReportSourceDefinitionResolver();
91              String JavaDoc pathReportSourceDefinitionSchema = pathReportSourceDefinitionSchemaResolver();
92              if (!(pathReportSourceDefinition.equalsIgnoreCase(""))){
93                runPollo(pathReportSourceDefinition,pathReportSourceDefinitionSchema,reportGenerator.getPolloPath());
94              }
95           }
96         } catch (Exception JavaDoc e) {
97             throw new InfoException(LanguageTraslator.traslate("543"), e);
98         }
99     }
100
101   private static void runPollo(String JavaDoc pathReportSourceDefinition, String JavaDoc pathReportSourceDefinitionSchema, String JavaDoc polloPath) throws IOException JavaDoc {
102     Runtime.getRuntime().exec("java -jar "+ polloPath+" "+pathReportSourceDefinition +" "+ pathReportSourceDefinitionSchema);
103   }
104
105   private static String JavaDoc pathReportSourceDefinitionResolver() throws InfoException {
106       String JavaDoc pathReportSourceDefinition = "";
107       try {
108         FileSystemManager fileSystemManager = FileSystemResolver.getFileSystemManager(reportGeneratorConfiguration);
109         FileObject fileObject = fileSystemManager.resolveFile(reportGeneratorConfiguration.getSourceReportSourceDefinitionsPath());
110         String JavaDoc fileName;
111         for (int i = 0; i < fileObject.getChildren().length; i++) {
112           fileName = fileObject.getChildren()[i].getName().getBaseName();
113           if(!fileName.endsWith(".xml")) {
114               continue;
115           }
116           String JavaDoc reportSourceDefinitionIDViewer;
117           reportSourceDefinitionIDViewer = ((ReportSourceDefinition) Unmarshaller.unmarshal(ReportSourceDefinition.class, new FileReader JavaDoc(reportGeneratorConfiguration.getSourceReportSourceDefinitionsPath() + "/" + fileName))).getId();
118           if (reportSourceDefinitionID.equalsIgnoreCase(reportSourceDefinitionIDViewer)){
119                 pathReportSourceDefinition = reportGeneratorConfiguration.getSourceReportSourceDefinitionsPath() + "/" + fileName;
120           }
121         }
122       }
123       catch (Exception JavaDoc e) {
124         throw new InfoException(LanguageTraslator.traslate("544"), e);
125       }
126       return pathReportSourceDefinition;
127   }
128
129     private static String JavaDoc pathReportSourceDefinitionSchemaResolver() throws InfoException{
130         String JavaDoc pathReportSourceDefinitionSchema = "";
131         try {
132             pathReportSourceDefinitionSchema = pathSchema + "/" + nameFileReportSourceDefinitionSchema;
133             new FileReader JavaDoc (pathReportSourceDefinitionSchema);
134          } catch (Exception JavaDoc e){
135             pathReportSourceDefinitionSchema = "";
136          }
137          return pathReportSourceDefinitionSchema;
138     }
139 }
140
Popular Tags