/**
*
*/
package com.trendrr.oss.executionreport;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicReference;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.trendrr.oss.TimeAmount;
import com.trendrr.oss.Timeframe;
/**
* @author Dustin Norlander
* @created Sep 21, 2011
*
*/
public class ExecutionReportConfig {
protected static Log log = LogFactory.getLog(ExecutionReportConfig.class);
protected AtomicReference<ExecutionReportSerializer> serializer = new AtomicReference<ExecutionReportSerializer>(new DummyExecutionReportDBConnector());
protected AtomicLong flushMillis = new AtomicLong(1000*30); //how often to flush
protected Set<TimeAmount> timeamounts = new HashSet<TimeAmount>();
public ExecutionReportConfig() {
timeamounts.add(TimeAmount.instance(Timeframe.MINUTES, 1));
timeamounts.add(TimeAmount.instance(Timeframe.HOURS, 1));
timeamounts.add(TimeAmount.instance(Timeframe.DAYS, 1));
}
/**
* The timeframes that the serializer should use. this is backed by a set so no dups.
* @return
*/
public Collection<TimeAmount> getTimeAmounts() {
return timeamounts;
}
public void setTimeAmounts(Collection<TimeAmount> timeamounts) {
this.timeamounts.clear();
this.timeamounts.addAll(timeamounts);
}
public ExecutionReportSerializer getSerializer() {
return serializer.get();
}
public void setSerializer(ExecutionReportSerializer serializer) {
this.serializer.set(serializer);
}
public long getFlushMillis() {
return flushMillis.get();
}
public void setFlushMillis(long flushMillis) {
this.flushMillis.set(flushMillis);
}
}