View Javadoc
1   /*
2    * #%L
3    * Coser :: Web
4    * %%
5    * Copyright (C) 2010 - 2012 Ifremer, Codelutin, Chatellier Eric, Chemit Tony
6    * %%
7    * This program is free software: you can redistribute it and/or modify
8    * it under the terms of the GNU Affero General Public License as published by
9    * the Free Software Foundation, either version 3 of the License, or
10   * (at your option) any later version.
11   * 
12   * This program is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   * GNU General Public License for more details.
16   * 
17   * You should have received a copy of the GNU Affero General Public License
18   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
19   * #L%
20   */
21  
22  package fr.ifremer.coser.web.actions.source;
23  
24  import fr.ifremer.coser.result.result.FileResult;
25  import fr.ifremer.coser.result.request.ExtractRawDataRequest;
26  import org.apache.struts2.convention.annotation.Action;
27  import org.apache.struts2.convention.annotation.Result;
28  
29  import java.io.InputStream;
30  
31  /**
32   * Force le téléchargement du zip.
33   *
34   * @author chatellier
35   * @version $Revision$
36   *          <p/>
37   *          Last update : $Date$
38   *          By : $Author$
39   */
40  public class SourceDataAction extends SourceAction {
41  
42      /** serialVersionUID. */
43      private static final long serialVersionUID = 3385467755357775199L;
44  
45      protected boolean accepted;
46  
47      protected FileResult result;
48  
49      public void setAccepted(boolean accepted) {
50          this.accepted = accepted;
51      }
52  
53      // used by validator
54      public boolean isAccepted() {
55          return accepted;
56      }
57  
58      //    @Action(results = {@Result(type = "stream", params = {"contentType", "application/zip", "inputName", "inputStream", "contentDisposition", "attachment; filename=\"${filename}\""})})
59      @Action(results = {@Result(type = "stream", params = {"contentType", "application/zip", "contentDisposition", "attachment; filename=\"${filename}\""})})
60      public String execute() {
61  
62          ExtractRawDataRequest request = requestBuilder(ExtractRawDataRequest.class).
63                  addFacade(facade).
64                  addZone(zone).
65                  toRequest();
66          result = getService().toFileResult(request);
67          return SUCCESS;
68      }
69  
70      public String getFilename() {
71          return "source.zip";
72      }
73  
74      public InputStream getInputStream() {
75          return result.getInputStream();
76      }
77  
78  //    @Override
79  //    public void validate() {
80  //
81  //        if (!accepted) {
82  //            addFieldError("accepted", getText("message.quality.notaccepted"));
83  //        }
84  //
85  //    }
86  //
87  //    public InputStream getInputStream() {
88  //        WebService webService = ServiceFactory.getWebService();
89  //
90  //        Locale locale = getLocale();
91  //
92  //        InputStream input = null;
93  //        try {
94  //
95  //            File sourceZip = webService.getSourceZip(zone, locale);
96  //            input = new FileInputStream(sourceZip);
97  //        } catch (Exception ex) {
98  //            if (log.isErrorEnabled()) {
99  //                log.error("Can't get file data", ex);
100 //            }
101 //            throw new CoserWebException("Can't get source zip file", ex);
102 //        }
103 //
104 //        return input;
105 //    }
106 }