1 package uk.ac.cam.spectra.spectrasub;
2
3 import java.io.File;
4 import java.io.IOException;
5 import java.net.MalformedURLException;
6
7 import org.apache.commons.io.FileUtils;
8 import org.apache.log4j.Logger;
9
10
11
12
13
14
15
16
17 public class SimpleFSDepositor implements Depositor {
18
19 private static final Logger LOG = Logger.getLogger(SimpleFSDepositor.class);
20
21 private DataPackageDAO dataPackageDAO;
22
23 private String dir;
24
25 public DataPackageDAO getDataPackageDAO() {
26 return dataPackageDAO;
27 }
28
29 public void setDataPackageDAO(DataPackageDAO dataPackageDAO) {
30 this.dataPackageDAO = dataPackageDAO;
31 }
32
33 public String deposit(String packageId) {
34 File storage = new File(dir);
35 File pkgSubmit = new File(storage, packageId);
36 File pkgDir = dataPackageDAO.getPackagingDirectory(packageId, false);
37
38 try {
39
40 if (!pkgSubmit.exists()) {
41 pkgSubmit.mkdirs();
42 }
43 FileUtils.copyDirectory(pkgDir, pkgSubmit);
44 return pkgSubmit.toURL().toString();
45 } catch (MalformedURLException e) {
46 throw new RuntimeException(
47 "File object unable to generate good URL!: "
48 + e.getMessage(), e);
49 } catch (IOException e) {
50 throw new RuntimeException("Copy failed on submission: "
51 + e.getMessage(), e);
52 }
53 }
54
55 public String getDir() {
56 return dir;
57 }
58
59 public void setDir(String dir) {
60 this.dir = dir;
61 }
62 }