|
From: Márcio V. d. S. <mv...@us...> - 2007-05-13 01:28:26
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv11044/src/java/net/sf/tail/indicator/tracker Modified Files: AbstractIndicator.java SMAIndicator.java EMAIndicator.java RSIIndicator.java Log Message: Criada a classe AbstractIndicator e refatorada as classes filhas ;-) Index: RSIIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/RSIIndicator.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** RSIIndicator.java 13 May 2007 01:16:51 -0000 1.4 --- RSIIndicator.java 13 May 2007 01:28:25 -0000 1.5 *************** *** 3,7 **** import net.sf.tail.Indicator; ! public class RSIIndicator extends AbstractIndicator<Double> { public RSIIndicator(Indicator<? extends Number> indicator, int timeFrame) { --- 3,7 ---- import net.sf.tail.Indicator; ! public class RSIIndicator extends AbstractIndicator { public RSIIndicator(Indicator<? extends Number> indicator, int timeFrame) { Index: EMAIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/EMAIndicator.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** EMAIndicator.java 13 May 2007 01:16:51 -0000 1.6 --- EMAIndicator.java 13 May 2007 01:28:25 -0000 1.7 *************** *** 3,7 **** import net.sf.tail.Indicator; ! public class EMAIndicator extends AbstractIndicator<Double> { public EMAIndicator(Indicator<? extends Number> indicator, int timeFrame) { --- 3,7 ---- import net.sf.tail.Indicator; ! public class EMAIndicator extends AbstractIndicator { public EMAIndicator(Indicator<? extends Number> indicator, int timeFrame) { Index: SMAIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/SMAIndicator.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** SMAIndicator.java 13 May 2007 01:16:51 -0000 1.4 --- SMAIndicator.java 13 May 2007 01:28:25 -0000 1.5 *************** *** 3,7 **** import net.sf.tail.Indicator; ! public class SMAIndicator extends AbstractIndicator<Double> { public SMAIndicator(Indicator<? extends Number> indicator, int timeFrame) { --- 3,7 ---- import net.sf.tail.Indicator; ! public class SMAIndicator extends AbstractIndicator { public SMAIndicator(Indicator<? extends Number> indicator, int timeFrame) { Index: AbstractIndicator.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/tracker/AbstractIndicator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AbstractIndicator.java 13 May 2007 01:00:06 -0000 1.1 --- AbstractIndicator.java 13 May 2007 01:28:25 -0000 1.2 *************** *** 1,40 **** package net.sf.tail.indicator.tracker; - import java.util.ArrayList; - import java.util.List; import net.sf.tail.Indicator; ! public abstract class AbstractIndicator<T> implements Indicator<T> { protected final Indicator<? extends Number> indicator; protected final int timeFrame; ! protected List<T> resultsList; public AbstractIndicator(Indicator<? extends Number> indicator, int timeFrame) { this.indicator = indicator; this.timeFrame = timeFrame; ! resultsList = new ArrayList<T>(); } ! public T getValue(int index) { ! if(resultsList.size() <= index ) { ! increaseLenght(index); } ! if(resultsList.get(index) == null){ ! resultsList.set(index,calculate(index)); } ! return resultsList.get(index); } ! private void increaseLenght(int lenght) { ! ! for (int i = 0; i <= lenght; i++) { ! resultsList.add(null); } } ! protected abstract T calculate(int index); --- 1,39 ---- package net.sf.tail.indicator.tracker; import net.sf.tail.Indicator; ! public abstract class AbstractIndicator implements Indicator<Double> { protected final Indicator<? extends Number> indicator; protected final int timeFrame; ! protected Double[] resultsList; public AbstractIndicator(Indicator<? extends Number> indicator, int timeFrame) { this.indicator = indicator; this.timeFrame = timeFrame; ! resultsList = new Double[100]; } ! public Double getValue(int index) { ! if(resultsList.length <= index ) { ! increaseLenght(); } ! if(resultsList[index] == null){ ! resultsList[index] = calculate(index); } ! return resultsList[index]; } ! private void increaseLenght() { ! Double[] tmp = new Double[resultsList.length*2]; ! for (int i = 0; i < resultsList.length; i++) { ! tmp[i] = resultsList[i]; } + resultsList = tmp; } ! protected abstract Double calculate(int index); |