|
From: Thies <tg...@us...> - 2007-11-05 23:16:07
|
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; ! } } |