/*
This file is part of jTotus.
jTotus is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
jTotus is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with jTotus. If not, see <http://www.gnu.org/licenses/>.
*
*
* http://tutorials.jenkov.com/java-collections/navigableset.html
*/
package org.jtotus.gui.graph;
import org.jlucrum.realtime.BrokerWatcher;
import org.jlucrum.realtime.generators.EsperEventGenerator;
import com.espertech.esper.client.EPRuntime;
import java.util.ArrayList;
import java.util.Date;
import java.util.concurrent.LinkedBlockingDeque;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.joda.time.LocalDate;
import org.jtotus.common.StockUnit;
import org.jtotus.engine.Engine;
/**
*
* @author Evgeni Kappinen
*/
public final class GraphSender {
private String mainReviewTarget = null;
private Engine mainEngine = null;
private ArrayList<StockUnit> listOfValues = null;
private GraphSeriesType type = GraphSeriesType.SIMPLELINE;
private String seriesName = null;
private String plotName = null;
public GraphSender(String reviewTarget) {
mainReviewTarget = reviewTarget;
mainEngine = Engine.getInstance();
listOfValues = new ArrayList<StockUnit>();
}
public void reset() {
listOfValues = new ArrayList<StockUnit>();
}
public void addForSending(Date date, Double value) {
StockUnit unit = new StockUnit();
unit.date = LocalDate.fromDateFields(date);
unit.value = value;
listOfValues.add(unit);
}
public void addForSending(Date date, Double value, String annotation) {
StockUnit unit = new StockUnit();
unit.date = LocalDate.fromDateFields(date);
unit.value = value;
unit.annotation = annotation;
listOfValues.add(unit);
}
public void sendAllStored() {
GraphPacket packet = new GraphPacket();
packet.seriesTitle = this.getSeriesName();
packet.plotName = mainReviewTarget;
packet.type = this.getType();
packet.results = listOfValues;
EPRuntime esperRuntime = BrokerWatcher.getMainEngine().getEPRuntime();
esperRuntime.sendEvent(packet);
// this.sentPacket(getMainReviewTarget(),packet);
this.reset();
}
/**
* @return the mainSeriesName
*/
public String getSeriesName() {
return seriesName;
}
/**
* @param mainSeriesName the mainSeriesName to set
*/
public void setSeriesName(String mainSeriesName) {
this.seriesName = mainSeriesName;
}
/**
* @return the plotName
*/
public String getPlotName() {
return plotName;
}
/**
* @param plotName the plotName to set
*/
public void setPlotName(String plotName) {
this.plotName = plotName;
}
/**
* @return the type
*/
public GraphSeriesType getType() {
return type;
}
/**
* @param type the type to set
*/
public void setType(GraphSeriesType type) {
this.type = type;
}
/**
* @return the mainReviewTarget
*/
public String getMainReviewTarget() {
return mainReviewTarget;
}
/**
* @param mainReviewTarget the mainReviewTarget to set
*/
public void setMainReviewTarget(String mainReviewTarget) {
this.mainReviewTarget = mainReviewTarget;
}
}