]> SALOME platform Git repositories - tools/siman.git/blob - Workspace/Siman-WS/src/org/splat/ws_server/service/salome/SimanSalomeServiceImpl.java
Salome HOME
Download and upload operations from server to client (from client to server) are...
[tools/siman.git] / Workspace / Siman-WS / src / org / splat / ws_server / service / salome / SimanSalomeServiceImpl.java
1 package org.splat.ws_server.service.salome;
2
3 import java.io.BufferedWriter;
4 import java.io.File;
5 import java.io.FileOutputStream;
6 import java.io.FileWriter;
7 import java.io.IOException;
8 import java.sql.SQLException;
9 import java.util.Iterator;
10 import java.util.List;
11
12 import javax.activation.DataHandler;
13 import javax.activation.FileDataSource;
14
15 import org.apache.log4j.Logger;
16 import org.splat.service.ScenarioService;
17 import org.splat.service.dto.DocumentDTO;
18 import org.splat.service.dto.FileDTO;
19 import org.splat.service.dto.StepDTO;
20 import org.splat.service.technical.ProjectSettingsService;
21 import org.splat.service.technical.RepositoryService;
22
23 public class SimanSalomeServiceImpl implements SimanSalomeService {
24         
25         /**
26          * The logger for the service.
27          */
28         protected final static Logger LOG = Logger
29                         .getLogger(SimanSalomeServiceImpl.class);
30
31         /**
32          * The Scenario Service.
33          */
34         private ScenarioService _scenarioService;
35         
36         /**
37          * The Repository Service.
38          */
39         private RepositoryService _repositoryService;
40         
41         /**
42          * The Project Settings Service.
43          */
44         private ProjectSettingsService _projectSettingsService;
45
46         /**
47          * 
48          * {@inheritDoc}
49          * @see org.splat.ws_server.service.salome.SimanSalomeService#createConfigFile(java.lang.Long, java.lang.Long, java.lang.Long)
50          */
51         @Override
52         public String createConfigFile(final Long studyId, final Long scenarioId,
53                         final Long userId) {
54                         
55                         try {
56                                 //_projectSettingsService.configure("WebContent/conf/som.xml");
57                                 _projectSettingsService.configure("W:/Eclipse workspace/SIMAN/SIMAN_SRC/Workspace/Siman-WS/WebContent/conf/som.xml");
58                                 //ClassLoader loader = ClassLoader.getSystemClassLoader();
59                                 //URL pathToSOM = loader.getResource("WebContent/conf/som.xml");
60                                 
61                                 /*ClassLoader cl = Thread.currentThread().getContextClassLoader();
62                                 URL testURL = ClassLoader.getSystemResource("conf/som.xml");
63                                 URL test2URL = ClassLoader.getSystemResource("som.xml");
64                                 String          path    = System.getProperty("user.dir");
65                                 
66                                 File textfile = new File("w:/testfile.txt");
67                                 
68                                  FileWriter fstream;
69                                 try {
70                                       fstream = new FileWriter(textfile);
71                                       BufferedWriter out = new BufferedWriter(fstream);  
72                                       if (testURL != null)
73                                           out.write("testURL " + testURL.getPath());
74                                       else
75                                           out.write("testURL == null\n");
76                                       
77                                       if (test2URL != null)
78                                           out.write("test2URL " + test2URL.getPath());
79                                       else
80                                           out.write("test2URL == null\n");
81                                       
82                                       out.write("path = " + path);
83                                       
84                                       out.close();
85                                     } catch (IOException e) {
86                                           // TODO Auto-generated catch block
87                                           e.printStackTrace();
88                                     }*/
89
90                                 //_projectSettingsService.configure(ClassLoader.getSystemResource("som.xml").getPath());
91                                 //_projectSettingsService.configure(pathToSOM.getPath());
92                         } catch (IOException ioException) {
93                                 LOG.debug("Sorry, IOException is throws", ioException);
94                         } catch (SQLException sqlException) {
95                                 LOG.debug("Sorry, impossible to populate the database", sqlException);
96                         }       
97
98                         List<StepDTO> listSteps = _scenarioService.getScenarioInfo(scenarioId);
99                         
100                         File configFilePath = new File(_repositoryService.getRepositoryVaultPath() + "/SimanSalome/" + studyId.toString() + scenarioId.toString() + userId.toString());
101                         configFilePath.mkdirs();
102                         File configFile = new File(configFilePath + "/siman-salome.conf");
103                         
104                         //build the result file.
105                 FileWriter fstream;
106                 try {
107                       fstream = new FileWriter(configFile);
108                       BufferedWriter out = new BufferedWriter(fstream);  
109                       
110                       out.write("Study ID : " + studyId + "\n");
111                       out.write("Scenario ID : " + scenarioId + "\n");
112                       out.write("User ID : " + userId + "\n");
113                       out.write("\n");
114                       
115                       Iterator<StepDTO> stepIter = listSteps.iterator();
116                       Iterator<DocumentDTO> docIter;
117                       Iterator<FileDTO> fileIter;
118                       
119                       StepDTO stepValue;
120                       DocumentDTO docValue;
121                       FileDTO fileValue;
122                       char fileState;
123                       
124                       for ( ; stepIter.hasNext(); ) {
125                           stepValue = stepIter.next();
126                           out.write("Activity : " + stepValue.getKey() + "\n");
127                           out.write("Activity ID : " + stepValue.getNumber() + "\n");
128                           out.write("SALOME module : " + stepValue.getModule() + "\n");
129                           
130                           docIter = stepValue.getDocs().iterator();
131                           
132                           for ( ; docIter.hasNext(); ) {
133                                   docValue = docIter.next();
134                                   out.write("    Document : " + docValue.getTitle() + "\n");
135                                   out.write("    Document ID: " + docValue.getId() + "\n");
136                                   
137                                   fileIter = docValue.getFiles().iterator();
138                                   
139                                   for ( ; fileIter.hasNext(); ) {
140                                           fileValue = fileIter.next();
141                                           if (fileValue.isResult() == false) {
142                                                   out.write("        Source file : " + fileValue.getPath() + "\n");
143                                           } else {
144                                                   out.write("        Result file : " + fileValue.getPath() + "\n");
145                                           }
146                                           
147                                           out.write("            Automatic processing : " + fileValue.getProcessing() + "\n");
148                                           fileState = fileValue.getState();
149                                           if ((fileState == 'Y') || (fileState == 'N')) {
150                                                   out.write("            State : file-actual\n");
151                                           } else if (fileState == 'O') {
152                                                   out.write("            State : file-outdated\n");
153                                           }
154                                   }
155                           }
156                           
157                           out.write("\n");
158                       }
159                       
160                       out.close();
161                     } catch (IOException e) {
162                           // TODO Auto-generated catch block
163                           e.printStackTrace();
164                     }
165                 
166                 return configFile.getAbsolutePath();
167         }
168         
169
170         /**
171          * 
172          * {@inheritDoc}
173          * @see org.splat.ws_server.service.salome.SimanSalomeService#getFile(java.lang.String)
174          */
175         @Override
176         public DataHandler getFile(final String fileURL) {
177                 FileDataSource dataSource = new FileDataSource(fileURL);
178                 DataHandler fileDataHandler = new DataHandler(dataSource);
179                 return fileDataHandler;
180         }
181         
182         /**
183          * 
184          * {@inheritDoc}
185          * @see org.splat.ws_server.service.salome.SimanSalomeService#putFile(javax.activation.DataHandler, java.io.File)
186          */
187         @Override
188         public void /*DataHandler*/ putFile(final DataHandler dataHandler, final String vaultURL) {
189                 
190                 File vaultURLFile = new File(vaultURL);
191                 File serverFilePath = vaultURLFile.getParentFile();
192                 serverFilePath.mkdirs();
193                 
194                 try {
195                         vaultURLFile.createNewFile();
196                 } catch (IOException e) {
197                         // TODO Auto-generated catch block
198                         e.printStackTrace();
199                 }
200         
201                 try {
202                         
203                         FileOutputStream outputStream = new FileOutputStream(vaultURLFile);
204                         dataHandler.writeTo(outputStream);
205                 
206                         outputStream.flush();
207                         outputStream.close();
208                 
209                 } catch (IOException e) {
210                         // TODO Auto-generated catch block
211                         e.printStackTrace();
212                 }
213                 
214                 /*FileDataSource fileDataSource = new FileDataSource(vaultURL);
215                 DataHandler fileDataHandler = new DataHandler(fileDataSource);
216                 return fileDataHandler;*/               
217                 
218         }
219
220         /**
221          * Get the scenarioService.
222          * @return the scenarioService
223          */
224         public ScenarioService getScenarioService() {
225                 return _scenarioService;
226         }
227
228         /**
229          * Set the scenarioService.
230          * @param scenarioService the scenarioService to set
231          */
232         public void setScenarioService(final ScenarioService scenarioService) {
233                 _scenarioService = scenarioService;
234         }
235
236
237         /**
238          * Get the repositoryService.
239          * @return the repositoryService
240          */
241         public RepositoryService getRepositoryService() {
242                 return _repositoryService;
243         }
244
245
246         /**
247          * Set the repositoryService.
248          * @param repositoryService the repositoryService to set
249          */
250         public void setRepositoryService(final RepositoryService repositoryService) {
251                 _repositoryService = repositoryService;
252         }
253
254
255         /**
256          * Get the projectSettingsService.
257          * @return the projectSettingsService
258          */
259         public ProjectSettingsService getProjectSettingsService() {
260                 return _projectSettingsService;
261         }
262
263
264         /**
265          * Set the projectSettingsService.
266          * @param projectSettingsService the projectSettingsService to set
267          */
268         public void setProjectSettingsService(
269                         final ProjectSettingsService projectSettingsService) {
270                 _projectSettingsService = projectSettingsService;
271         }
272         
273         
274 }