View Javadoc

1   package uk.ac.cam.spectra.spectrasub.pages;
2   
3   import java.util.Arrays;
4   import java.util.Calendar;
5   import java.util.Date;
6   import java.util.List;
7   
8   import org.apache.log4j.Logger;
9   import org.apache.tapestry.IPage;
10  import org.apache.tapestry.PageRedirectException;
11  import org.apache.tapestry.annotations.InjectObject;
12  import org.apache.tapestry.annotations.InjectPage;
13  import org.apache.tapestry.event.PageBeginRenderListener;
14  import org.apache.tapestry.event.PageEvent;
15  
16  import uk.ac.cam.spectra.Constants;
17  import uk.ac.cam.spectra.EmbargoMetadataEncoder;
18  import uk.ac.cam.spectra.LiteralProperty;
19  import uk.ac.cam.spectra.SpectraMetadata;
20  import uk.ac.cam.spectra.spectrasub.Configuration;
21  import uk.ac.cam.spectra.spectrasub.DataPackage;
22  import uk.ac.cam.spectra.spectrasub.DataPackageDAO;
23  import uk.ac.cam.spectra.spectrasub.DataPackageManager;
24  import uk.ac.cam.spectra.spectrasub.NotFoundException;
25  
26  public abstract class Check extends BaseSubmissionPage implements
27          PageBeginRenderListener {
28      @SuppressWarnings("unused")
29      private static final Logger LOG = Logger.getLogger(Check.class);
30  
31      public void pageBeginRender(PageEvent event) {
32          if (getRequestCycle().isRewinding()) {
33              return;
34          }
35          DataPackageDAO pkgDao = getPackageDao();
36          EmbargoMetadataEncoder embargoEncoder = getEmbargoEncoder();
37          String id = getPackageId();
38  
39          DataPackage dp = loadPackage();
40          Integer embargoPeriod = dp
41                  .getIntegerValue(SpectraMetadata.embargo_period);
42          if (embargoPeriod == null) {
43              embargoPeriod = Integer.valueOf(0);
44          }
45          setEmbargoApplies(embargoPeriod != 0);
46          setAutoRelease("automatic".equals(dp
47                  .getValue(SpectraMetadata.embargo_release)));
48          setContents(Arrays.asList(pkgDao.getPackagingDirectory(id, false)
49                  .list()));
50          String inchi = dp.getValue(SpectraMetadata.inchi);
51          if (inchi != null) {
52              inchi = inchi.replace("/", "/<wbr/>");
53              inchi = inchi.replace("-", "-<wbr/>");
54          }
55          setInchi(inchi);
56          setRights(dp.getValue(new LiteralProperty(
57  				Constants.DC_NS, "rights")));
58          Date embargoStart = dp.getDateValue(SpectraMetadata.embargo_date);
59          if (embargoStart == null) {
60              embargoStart = new Date();
61          }
62          Calendar c = Calendar.getInstance();
63          c.setTime(embargoStart);
64          c.add(Calendar.MONTH, embargoPeriod);
65          Date embargoEnd = c.getTime();
66          setEmbargoEnd(Constants.SIMPLE_ISO_DATE_FORMAT.format(embargoEnd));
67          setHandle(dp.getValue(SpectraMetadata.handle));
68          setClosedUrl(embargoEncoder.getClosedLicenseURL());
69          setClosedLicense(embargoEncoder.getClosedLicenseDescription());
70          setOpenUrl(embargoEncoder.getOpenLicenseURL());
71          setOpenLicense(embargoEncoder.getOpenLicenseDescription());
72      }
73  
74      public IPage submit() {
75          DataPackageManager packageManager = getDataPackageManager();
76          String newURL;
77          try {
78              newURL = packageManager.packAndGo(getPackageId());
79          } catch (NotFoundException e) {
80              throw new RuntimeException(e);
81          }
82          Finished finished = getFinished();
83          finished.setNewURL(newURL);
84          finished.setPackageId(getPackageId());
85          return finished;
86      }
87  
88      public String getPackageDescription() {
89          return getConfiguration().getPackageDescription();
90      }
91  
92      @InjectObject("spring:application")
93      public abstract Configuration getConfiguration();
94  
95      @InjectPage("Finished")
96      public abstract Finished getFinished();
97  
98      @InjectObject("spring:embargoEncoder")
99      public abstract EmbargoMetadataEncoder getEmbargoEncoder();
100 
101     @InjectObject("spring:packageManager")
102     public abstract DataPackageManager getDataPackageManager();
103 
104     public void reedit() {
105         AddMetadata am = getAddMetadata();
106         am.setPackageId(getPackageId());
107         throw new PageRedirectException(am);
108     }
109 
110     @InjectPage("AddMetadata")
111     public abstract AddMetadata getAddMetadata();
112 
113     public void quit() {
114         throw new PageRedirectException(getUpload());
115     }
116 
117     @InjectPage("Upload")
118     public abstract Upload getUpload();
119 
120     public abstract boolean getEmbargoApplies();
121 
122     public abstract void setEmbargoApplies(boolean embarg);
123 
124     public abstract boolean getAutoRelease();
125 
126     public abstract void setAutoRelease(boolean ar);
127 
128     public abstract List<String> getContents();
129 
130     public abstract void setContents(List<String> cs);
131 
132     public abstract String getInchi();
133 
134     public abstract void setInchi(String inchi);
135 
136     public abstract String getRights();
137 
138     public abstract void setRights(String rights);
139 
140     public abstract String getEmbargoEnd();
141 
142     public abstract void setEmbargoEnd(String end);
143 
144     public abstract String getHandle();
145 
146     public abstract void setHandle(String h);
147 
148     public abstract String getClosedUrl();
149 
150     public abstract void setClosedUrl(String url);
151 
152     public abstract String getClosedLicense();
153 
154     public abstract void setClosedLicense(String s);
155 
156     public abstract String getOpenUrl();
157 
158     public abstract void setOpenUrl(String url);
159 
160     public abstract String getOpenLicense();
161 
162     public abstract void setOpenLicense(String s);
163 
164 }