From 5c6541de450de328c4da799e344f53ec9558a6b1 Mon Sep 17 00:00:00 2001
From: Jan Kozusznik <jan@kozusznik.cz>
Date: Mon, 29 Jan 2018 15:21:47 +0100
Subject: [PATCH] basic definitions

---
 .../cz/it4i/fiji/haas/HaaSOutputHolder.java   | 27 +++++++++++++++++++
 .../cz/it4i/fiji/haas/HaaSOutputSource.java   |  9 +++++++
 .../core/BenchmarkJobManager.java             | 22 ++++++++++++++-
 .../fiji/haas_spim_benchmark/core/Task.java   | 24 +++++++++++++++++
 .../core/TaskComputation.java                 |  5 ++++
 5 files changed, 86 insertions(+), 1 deletion(-)
 create mode 100644 haas-imagej-client/src/main/java/cz/it4i/fiji/haas/HaaSOutputHolder.java
 create mode 100644 haas-imagej-client/src/main/java/cz/it4i/fiji/haas/HaaSOutputSource.java
 create mode 100644 haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/Task.java
 create mode 100644 haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/TaskComputation.java

diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/HaaSOutputHolder.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/HaaSOutputHolder.java
new file mode 100644
index 00000000..5c8da0e6
--- /dev/null
+++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/HaaSOutputHolder.java
@@ -0,0 +1,27 @@
+package cz.it4i.fiji.haas;
+
+import java.util.Arrays;
+
+import cz.it4i.fiji.haas.JobManager.JobSynchronizableFile;
+import cz.it4i.fiji.haas_java_client.SynchronizableFileType;
+
+public class HaaSOutputHolder {
+	private StringBuilder result = new StringBuilder();
+	private HaaSOutputSource source;
+	private SynchronizableFileType type;
+	public HaaSOutputHolder(HaaSOutputSource source, SynchronizableFileType typeForHold) {
+		super();
+		this.source = source;
+		this.type = typeForHold;
+	}
+	
+	public String getActualOutput () {
+		updateData();
+		return result.toString();
+	}
+
+	private void updateData() {
+		JobSynchronizableFile file = new JobSynchronizableFile(type, result.length());
+		result.append(source.getOutput(Arrays.asList(file)).get(0));
+	}
+}
diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/HaaSOutputSource.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/HaaSOutputSource.java
new file mode 100644
index 00000000..904258f0
--- /dev/null
+++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/HaaSOutputSource.java
@@ -0,0 +1,9 @@
+package cz.it4i.fiji.haas;
+
+import java.util.List;
+
+import cz.it4i.fiji.haas.JobManager.JobSynchronizableFile;
+
+public interface HaaSOutputSource {
+	public List<String> getOutput(List<JobSynchronizableFile> files);
+}
diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/BenchmarkJobManager.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/BenchmarkJobManager.java
index 4fb7751e..3b720588 100644
--- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/BenchmarkJobManager.java
+++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/BenchmarkJobManager.java
@@ -21,6 +21,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.yaml.snakeyaml.Yaml;
 
+import cz.it4i.fiji.haas.HaaSOutputHolder;
+import cz.it4i.fiji.haas.HaaSOutputSource;
 import cz.it4i.fiji.haas.JobManager;
 import cz.it4i.fiji.haas.JobManager.JobInfo;
 import cz.it4i.fiji.haas.JobManager.JobSynchronizableFile;
@@ -28,6 +30,7 @@ import cz.it4i.fiji.haas.UploadingFileFromResource;
 import cz.it4i.fiji.haas_java_client.HaaSClient;
 import cz.it4i.fiji.haas_java_client.JobState;
 import cz.it4i.fiji.haas_java_client.Settings;
+import cz.it4i.fiji.haas_java_client.SynchronizableFileType;
 import javafx.beans.value.ObservableValueBase;
 import net.imagej.updater.util.Progress;
 
@@ -38,14 +41,19 @@ public class BenchmarkJobManager {
 	private static Logger log = LoggerFactory
 			.getLogger(cz.it4i.fiji.haas_spim_benchmark.core.BenchmarkJobManager.class);
 
-	public final class Job extends ObservableValueBase<Job> {
+	public final class Job extends ObservableValueBase<Job> implements HaaSOutputSource {
 		private JobInfo jobInfo;
 
 		private JobState oldState;
+		
+		private HaaSOutputHolder outputOfSnakemake;
+
+		private Collection<Task> tasks;
 
 		public Job(JobInfo ji) {
 			super();
 			this.jobInfo = ji;
+			outputOfSnakemake = new HaaSOutputHolder(getValue(), SynchronizableFileType.StandardErrorFile);
 		}
 
 		public void startJob(Progress progress) throws IOException {
@@ -139,6 +147,18 @@ public class BenchmarkJobManager {
 			return jobInfo.getDirectory();
 		}
 		
+		public Collection<Task> getTasks() {
+			if(tasks == null) {
+				fillTasks();
+			}
+			return tasks;
+		}
+		
+
+		private void fillTasks() {
+			String snakeMakeoutput = outputOfSnakemake.getActualOutput();
+			
+		}
 
 		private void setDownloaded(boolean b) {
 			jobInfo.setProperty(JOB_HAS_DATA_TO_DOWNLOAD_PROPERTY, b + "");
diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/Task.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/Task.java
new file mode 100644
index 00000000..95ac6f0a
--- /dev/null
+++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/Task.java
@@ -0,0 +1,24 @@
+package cz.it4i.fiji.haas_spim_benchmark.core;
+
+import java.util.Collection;
+
+import cz.it4i.fiji.haas_spim_benchmark.core.BenchmarkJobManager.Job;
+
+public class Task {
+	private String description;
+	private Job job;
+	private Collection<TaskComputation> computations;
+	
+	public Task(Job job,String description) {
+		this.description = description;
+		this.job = job;
+	}
+
+	public String getDescription() {
+		return description;
+	}
+	
+	public Collection<Task> getPredecessors() {
+		return null;
+	}
+}
diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/TaskComputation.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/TaskComputation.java
new file mode 100644
index 00000000..497e2fd1
--- /dev/null
+++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/TaskComputation.java
@@ -0,0 +1,5 @@
+package cz.it4i.fiji.haas_spim_benchmark.core;
+
+public class TaskComputation {
+
+}
-- 
GitLab