|
From: Márcio V. d. S. <mv...@us...> - 2007-05-18 01:07:47
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/indicator/cache In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv21729/src/java/net/sf/tail/indicator/cache Added Files: CachedIndicator.java Log Message: refatoração de código (control + shift + f) --- NEW FILE: CachedIndicator.java --- package net.sf.tail.indicator.cache; import java.util.ArrayList; import java.util.Collections; import java.util.List; import net.sf.tail.Indicator; public class CachedIndicator implements Indicator { private final Indicator<? extends Number> indicator; // TODO - A melhor solução é realmente List<Number> ? private List<Number> results; public CachedIndicator(Indicator<? extends Number> indicator) { this.indicator = indicator; results = new ArrayList<Number>(); } public Number getValue(int index) { increaseLength(index); if (results.get(index) == null) { results.set(index, indicator.getValue(index)); } return results.get(index); } private void increaseLength(int index) { if (results.size() <= index) { results.addAll(Collections.<Number> nCopies(index - results.size() + 1, null)); } } } |