package org.argeo.slc.process;\r
\r
-import java.io.IOException;\r
-import java.io.StringReader;\r
-import java.io.StringWriter;\r
+import java.util.ArrayList;\r
import java.util.Date;\r
import java.util.List;\r
+import java.util.StringTokenizer;\r
import java.util.UUID;\r
-import java.util.Vector;\r
-\r
-import org.apache.commons.io.IOUtils;\r
\r
public class SlcExecutionStep {\r
+ public final static String TYPE_START = "START";\r
+ public final static String TYPE_END = "END";\r
+ public final static String TYPE_PHASE_START = "PHASE_START";\r
+ public final static String TYPE_PHASE_END = "PHASE_END";\r
public final static String TYPE_LOG = "LOG";\r
\r
- private String uuid;\r
+ private String uuid = UUID.randomUUID().toString();\r
private String type;\r
- private Date begin;\r
- private List<String> logLines = new Vector<String>();\r
+ private Date begin = new Date();\r
+ private List<String> logLines = new ArrayList<String>();\r
\r
/** Empty constructor */\r
public SlcExecutionStep() {\r
}\r
\r
+ /** Creates a step of type LOG. */\r
public SlcExecutionStep(String log) {\r
- this.type = TYPE_LOG;\r
- this.begin = new Date();\r
- this.uuid = UUID.randomUUID().toString();\r
+ this(TYPE_LOG, log);\r
+ }\r
+\r
+ /** Creates a step of the given type. */\r
+ public SlcExecutionStep(String type, String log) {\r
+ this.type = type;\r
addLog(log);\r
}\r
\r
this.logLines = logLines;\r
}\r
\r
- public String logAsString() {\r
- StringWriter writer = new StringWriter();\r
- String log = writer.toString();\r
- IOUtils.closeQuietly(writer);\r
- return log;\r
- }\r
-\r
public void addLog(String log) {\r
if (log == null)\r
return;\r
\r
- try {\r
- List<String> lines = IOUtils.readLines(new StringReader(log));\r
- logLines.addAll(lines);\r
- } catch (IOException e) {\r
- throw new RuntimeException("Cannot add log", e);\r
- }\r
+ StringTokenizer st = new StringTokenizer(log, "\n");\r
+ while (st.hasMoreTokens())\r
+ logLines.add(st.nextToken());\r
}\r
\r
@Override\r