Add direct link to the job archive file (raw data)
[proteocache.git] / engine / compbio / engine / archive / ArchivedJob.java
index 3f0f7d5..2c2c2ab 100644 (file)
@@ -6,38 +6,62 @@ import java.net.MalformedURLException;
 import java.net.URL;
 import java.nio.channels.Channels;
 import java.nio.channels.ReadableByteChannel;
+import java.nio.file.Paths;
+import java.nio.file.Files;
 import java.util.List;
 
+import compbio.engine.ProteoCachePropertyHelperManager;
+import compbio.util.PropertyHelper;
+
 public class ArchivedJob {
        String path;
+       String id;
+       String jobfilename;
        int filesize;
        List<String> files;
+       private static final PropertyHelper ph = ProteoCachePropertyHelperManager.getPropertyHelper();
 
-       ArchivedJob (String path) {
-               this.path = path;
+       public ArchivedJob(String id) {
+               this.id = id;
+               jobfilename = id + ".tar.gz";
        }
-       
-       public boolean getArchiveFromWS() {
-               return false;
-       }
-       
-       
-       public boolean getArchiveFromWeb (String webpath) throws IOException, MalformedURLException {
+
+       public boolean copyArchiveFromWeb(String webpath) throws IOException, MalformedURLException {
                URL website = new URL(webpath);
                ReadableByteChannel rbc = Channels.newChannel(website.openStream());
                FileOutputStream fos = new FileOutputStream(path);
                fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+               fos.close();
+               return true;
+       }
+
+       public String prepareJobArchiveToWeb() throws IOException {
+               String resultpath = ph.getProperty("archive.web.dir");
+               String thefile = ph.getProperty("archive.path") + '/' + jobfilename;
+               String finalpath = ProteoCachePropertyHelperManager.getLocalPath() + resultpath + '/' + jobfilename;
+               if (Files.isReadable(Paths.get(thefile))) {
+                       Files.copy(Paths.get(thefile), Paths.get(finalpath));
+                       return  resultpath + '/' + jobfilename;
+               }
+               return null;
+       }
+
+       public boolean copyArchiveLocaly(String localpath) throws IOException {
+               Files.copy(Paths.get(localpath), Paths.get(path));
                return true;
        }
-       
-       
+
+       public void setArchivePath(String path) {
+               this.path = path;
+       }
+
        public int getSize() {
                return filesize;
        }
-       
+
        public List<String> unpack() {
                if (null != files) {
-                       
+
                }
                return files;
        }