package cc.glsn.v15.fincalc; import java.util.Collection; import java.util.LinkedList; import java.util.Scanner; import java.util.Date; import java.util.TreeSet; import java.io.PrintStream; public class ValueList { private LinkedList points; public ValueList(Scanner input_scan) { points=new LinkedList(); while(input_scan.hasNextLine()) { points.add(new ValuePoint(input_scan.nextLine())); } } public void write(PrintStream out) { for(ValuePoint p : points) { out.println(p.getLine()); } } public void addValue(ValuePoint p) { points.add(p); } public Collection getAllPoints() { LinkedList pts=new LinkedList(); pts.addAll(points); return pts; } public TreeSet getOrderedPoints() { TreeSet ts=new TreeSet(); ts.addAll(points); return ts; } public Collection getPointsInRange(Date start, Date end) { LinkedList pts=new LinkedList(); for (ValuePoint pt : points) { if ((start.compareTo(pt.getTime()) <=0) && (end.compareTo(pt.getTime()) >= 0)) { pts.add(pt); } } return pts; } public ValuePoint getPrevPoint(Date dt) { ValuePoint a=new ValuePoint(new Date(0),0.0); for(ValuePoint pt : points) { // if DT is greater than pt if (dt.compareTo(pt.getTime()) >= 0) // if a is less than pt if (a.getTime().compareTo(pt.getTime()) < 0) { a=pt; } } return a; } }