package org.marketcetera.event;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.marketcetera.event.beans.EventBean;
import org.marketcetera.trade.Equity;
import org.marketcetera.trade.Instrument;
/* $License$ */
/**
* Extends {@link AggregateEvent} in order to test the parent class.
*
* @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a>
* @version $Id: MockAggregateEvent.java 16834 2014-02-13 20:40:53Z colin $
* @since 1.5.0
*/
public class MockAggregateEvent
implements AggregateEvent
{
/**
* Create a new TestEvent instance.
*
* @param inTimestamp a <code>Date</code> value
* @param inInstrument an <code>Instrument</code> value
*/
public MockAggregateEvent(Date inTimestamp,
Instrument inInstrument)
{
event.setMessageId(System.nanoTime());
event.setTimestamp(new Date());
instrument = inInstrument;
}
/**
* Create a new MockAggregateEvent instance.
*
* @param inCompositeEvents a <code>List<QuoteEvent></code> value containing the events to which this event should decompose
*/
public MockAggregateEvent(List<QuoteEvent> inCompositeEvents)
{
this(new Date(),
new Equity("METC"));
compositeEvents.addAll(inCompositeEvents);
}
/* (non-Javadoc)
* @see org.marketcetera.event.Event#getMessageId()
*/
@Override
public long getMessageId()
{
return event.getMessageId();
}
/* (non-Javadoc)
* @see org.marketcetera.event.Event#getSource()
*/
@Override
public Object getSource()
{
return event.getSource();
}
/* (non-Javadoc)
* @see org.marketcetera.event.Event#getTimestamp()
*/
@Override
public Date getTimestamp()
{
return event.getTimestamp();
}
/* (non-Javadoc)
* @see org.marketcetera.event.Event#setSource(java.lang.Object)
*/
@Override
public void setSource(Object inSource)
{
event.setSource(inSource);
}
/* (non-Javadoc)
* @see org.marketcetera.event.Event#getProvider()
*/
@Override
public String getProvider()
{
return event.getProvider();
}
/* (non-Javadoc)
* @see org.marketcetera.event.Event#setProvider(java.lang.String)
*/
@Override
public void setProvider(String inProvider)
{
event.setProvider(inProvider);
}
/* (non-Javadoc)
* @see org.marketcetera.event.TimestampCarrier#getTimeMillis()
*/
@Override
public long getTimeMillis()
{
return getTimestamp().getTime();
}
/* (non-Javadoc)
* @see org.marketcetera.event.AggregateEvent#decompose()
*/
@Override
public List<QuoteEvent> decompose()
{
return compositeEvents;
}
/**
* Get the instrument value.
*
* @return a <code>InstrumentBean</code> value
*/
public Instrument getInstrument()
{
return instrument;
}
/* (non-Javadoc)
* @see org.marketcetera.event.HasInstrument#getInstrumentAsString()
*/
@Override
public String getInstrumentAsString()
{
return instrument.getSymbol();
}
/**
* stores the events to which this event should decompose
*/
private final List<QuoteEvent> compositeEvents = new ArrayList<QuoteEvent>();
/**
* event attributes
*/
private final EventBean event = new EventBean();
/**
* instrument attributes
*/
private final Instrument instrument;
private static final long serialVersionUID = 2L;
}