Update of /cvsroot/tail/Tail/src/java/net/sf/tail/analysis
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv714/src/java/net/sf/tail/analysis
Modified Files:
StockAnalysis.java
Log Message:
Alterado a sereliziação, agora o script é salvo ao inves de set de strategies
Index: StockAnalysis.java
===================================================================
RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/analysis/StockAnalysis.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** StockAnalysis.java 31 Oct 2007 19:53:07 -0000 1.14
--- StockAnalysis.java 5 Nov 2007 23:16:10 -0000 1.15
***************
*** 1,22 ****
package net.sf.tail.analysis;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import net.sf.tail.AnalysisCriterion;
- import net.sf.tail.StrategyEvaluator;
import net.sf.tail.Strategy;
import net.sf.tail.TimeSeriesSlicer;
import net.sf.tail.analysis.walk.WalkForward;
import net.sf.tail.report.Report;
import net.sf.tail.series.SerializableTimeSeries;
public class StockAnalysis implements Serializable {
!
private static final long serialVersionUID = 8039932898223937322L;
private TimeSeriesSlicer slicer;
--- 1,34 ----
package net.sf.tail.analysis;
+ import java.io.FileInputStream;
+ import java.io.FileNotFoundException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
+ import java.util.ResourceBundle;
+ import java.util.Scanner;
import java.util.Set;
+ import javax.script.ScriptException;
+ import javax.swing.JOptionPane;
+
import net.sf.tail.AnalysisCriterion;
import net.sf.tail.Strategy;
+ import net.sf.tail.StrategyEvaluator;
import net.sf.tail.TimeSeriesSlicer;
import net.sf.tail.analysis.walk.WalkForward;
+ import net.sf.tail.dsl.ruby.RubyDSL;
import net.sf.tail.report.Report;
import net.sf.tail.series.SerializableTimeSeries;
+ import org.apache.log4j.Logger;
+
public class StockAnalysis implements Serializable {
! private static final ResourceBundle fileBundle = ResourceBundle.getBundle("net.sf.tail.i18n.Files");
private static final long serialVersionUID = 8039932898223937322L;
+
+ private transient static Logger LOG = Logger.getLogger(StockAnalysis.class);
private TimeSeriesSlicer slicer;
***************
*** 34,37 ****
--- 46,51 ----
private WalkForward walker;
+ private transient RubyDSL dsl;
+
public StockAnalysis(SerializableTimeSeries stock, AnalysisCriterion applyedCriterion, TimeSeriesSlicer slicer, StrategyEvaluator evaluator) {
this.stock = stock;
***************
*** 43,46 ****
--- 57,97 ----
reports = new ArrayList<Report>();
additionalCriteria = new ArrayList<AnalysisCriterion>();
+
+ createDSL();
+ }
+
+ private void createDSL() {
+ try {
+ String dslHeader = read(fileBundle.getString("RUBY_UTILS_FILE"));
+ dsl = new RubyDSL(dslHeader, this.getStock());
+ } catch (Exception e) {
+ JOptionPane.showMessageDialog(null, "File not found: rubyDSLutils.rb .", "Error", 2);
+ }
+ }
+
+ public Report addReport(String reportName, String strategiesScript) {
+ Report report = createReport(reportName, strategiesScript);
+
+ reports.add(report);
+ return report;
+ }
+
+ private Report createReport(String reportName, String strategiesScript) {
+
+ Set<Strategy> strategies = null;
+ try {
+ strategies = dsl.evalStrategies(strategiesScript);
+ } catch (ScriptException e) {
+ LOG.error(e.getMessage());
+ throw new RuntimeException(e);
+ }
+ Report report = walker.walk(strategies, slicer, applyedCriterion);
+ report.setName(reportName);
+ report.setStrategiesScript(strategiesScript);
+
+ for (AnalysisCriterion criterion : additionalCriteria) {
+ report.addSummarizedCriteria(criterion);
+ }
+ return report;
}
***************
*** 98,102 ****
List<Report> newReports = new ArrayList<Report>();
for (int i = 0; i < reports.size(); i++) {
! Report newReport = createReport(reports.get(i).getName(), reports.get(i).getStrategies());
newReports.add(newReport);
}
--- 149,153 ----
List<Report> newReports = new ArrayList<Report>();
for (int i = 0; i < reports.size(); i++) {
! Report newReport = createReport(reports.get(i).getName(), reports.get(i).getStrategiesScript());
newReports.add(newReport);
}
***************
*** 159,163 ****
}
!
}
--- 210,227 ----
}
! private static String read(String name) {
! String text = "";
! Scanner scanner;
! try {
! scanner = new Scanner(new FileInputStream(name));
! while (scanner.hasNextLine()) {
! text += scanner.nextLine() + "\n";
! }
! } catch (FileNotFoundException e) {
! e.printStackTrace();
! }
!
! return text;
! }
}
|