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);
|