package org.marketcetera.event.impl; import java.math.BigDecimal; import java.util.Date; import javax.annotation.concurrent.ThreadSafe; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import org.marketcetera.event.*; import org.marketcetera.event.beans.HasEventBean; import org.marketcetera.event.beans.ImbalanceBean; import org.marketcetera.event.util.EventServices; import org.marketcetera.trade.Instrument; import org.marketcetera.util.misc.ClassVersion; /* $License$ */ /** * Provides an implementation for {@link ImbalanceEvent}. * * @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a> * @version $Id: AbstractImbalanceEvent.java 16901 2014-05-11 16:14:11Z colin $ * @since 2.4.0 */ @ThreadSafe @XmlAccessorType(XmlAccessType.NONE) @ClassVersion("$Id: AbstractImbalanceEvent.java 16901 2014-05-11 16:14:11Z colin $") abstract class AbstractImbalanceEvent implements ImbalanceEvent, HasEventBean { /* (non-Javadoc) * @see org.marketcetera.event.Event#getMessageId() */ @Override public long getMessageId() { return imbalance.getMessageId(); } /* (non-Javadoc) * @see org.marketcetera.event.Event#getTimestamp() */ @Override public Date getTimestamp() { return imbalance.getTimestamp(); } /* (non-Javadoc) * @see org.marketcetera.event.Event#getSource() */ @Override public Object getSource() { return imbalance.getSource(); } /* (non-Javadoc) * @see org.marketcetera.event.Event#setSource(java.lang.Object) */ @Override public void setSource(Object inSource) { imbalance.setSource(inSource); } /* (non-Javadoc) * @see org.marketcetera.event.Event#getProvider() */ @Override public String getProvider() { return imbalance.getProvider(); } /* (non-Javadoc) * @see org.marketcetera.event.Event#setProvider(java.lang.String) */ @Override public void setProvider(String inProvider) { imbalance.setProvider(inProvider); } /* (non-Javadoc) * @see org.marketcetera.event.TimestampCarrier#getTimeMillis() */ @Override public long getTimeMillis() { return imbalance.getTimeMillis(); } /* (non-Javadoc) * @see org.marketcetera.event.HasEventType#getEventType() */ @Override public EventType getEventType() { return imbalance.getEventType(); } /* (non-Javadoc) * @see org.marketcetera.event.HasEventType#setEventType(org.marketcetera.event.EventType) */ @Override public void setEventType(EventType inEventType) { imbalance.setEventType(inEventType); } /* (non-Javadoc) * @see org.marketcetera.event.HasInstrument#getInstrument() */ @Override public Instrument getInstrument() { return imbalance.getInstrument(); } /* (non-Javadoc) * @see org.marketcetera.event.HasInstrument#getInstrumentAsString() */ @Override public String getInstrumentAsString() { return imbalance.getInstrumentAsString(); } /* (non-Javadoc) * @see org.marketcetera.event.beans.HasEventBean#getEventBean() */ @Override public ImbalanceBean getEventBean() { return imbalance; } /* (non-Javadoc) * @see org.marketcetera.event.ImbalanceEvent#getAuctionType() */ @Override public AuctionType getAuctionType() { return imbalance.getAuctionType(); } /* (non-Javadoc) * @see org.marketcetera.event.ImbalanceEvent#getExchange() */ @Override public String getExchange() { return imbalance.getExchange(); } /* (non-Javadoc) * @see org.marketcetera.event.ImbalanceEvent#getFarPrice() */ @Override public BigDecimal getFarPrice() { return imbalance.getFarPrice(); } /* (non-Javadoc) * @see org.marketcetera.event.ImbalanceEvent#getImbalanceVolume() */ @Override public BigDecimal getImbalanceVolume() { return imbalance.getImbalanceVolume(); } /* (non-Javadoc) * @see org.marketcetera.event.ImbalanceEvent#getInstrumentStatus() */ @Override public InstrumentStatus getInstrumentStatus() { return imbalance.getInstrumentStatus(); } /* (non-Javadoc) * @see org.marketcetera.event.ImbalanceEvent#getImbalanceus() */ @Override public MarketStatus getMarketStatus() { return imbalance.getMarketStatus(); } /* (non-Javadoc) * @see org.marketcetera.event.ImbalanceEvent#getNearPrice() */ @Override public BigDecimal getNearPrice() { return imbalance.getNearPrice(); } /* (non-Javadoc) * @see org.marketcetera.event.ImbalanceEvent#getPairedVolume() */ @Override public BigDecimal getPairedVolume() { return imbalance.getPairedVolume(); } /* (non-Javadoc) * @see org.marketcetera.event.ImbalanceEvent#getReferencePrice() */ @Override public BigDecimal getReferencePrice() { return imbalance.getReferencePrice(); } /* (non-Javadoc) * @see org.marketcetera.event.ImbalanceEvent#getImbalanceType() */ @Override public ImbalanceType getImbalanceType() { return imbalance.getImbalanceType(); } /* (non-Javadoc) * @see org.marketcetera.event.ImbalanceEvent#isShortSaleRestricted() */ @Override public boolean isShortSaleRestricted() { return imbalance.getShortSaleRestricted(); } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("Imbalance for ").append(imbalance.getInstrument().getFullSymbol()).append(" [").append(imbalance.getEventType()).append("] ") .append(" auction: ").append(imbalance.getAuctionType()).append(" on exchange ").append(imbalance.getExchange()).append(" instrument status: ").append(imbalance.getInstrumentStatus()) .append(" market status: ").append(imbalance.getMarketStatus()).append(" at ").append(imbalance.getTimestamp()); return builder.toString(); } /* (non-Javadoc) * @see java.lang.Object#hashCode() */ @Override public final int hashCode() { return EventServices.eventHashCode(this); } /* (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ @Override public final boolean equals(Object obj) { return EventServices.eventEquals(this, obj); } /** * Create a new AbstractImbalanceEventImpl instance. * * @param inImbalanceBean a <code>ImbalanceBean</code> value * @throws IllegalArgumentException if <code>MessageId</code> < 0 * @throws IllegalArgumentException if <code>Timestamp</code> is <code>null</code> * @throws IllegalArgumentException if <code>Instrument</code> is <code>null</code> */ protected AbstractImbalanceEvent(ImbalanceBean inImbalance) { imbalance = ImbalanceBean.copy(inImbalance); imbalance.setDefaults(); imbalance.validate(); } /** * Create a new AbstractImbalanceEventImpl instance. * * <p>This constructor is intended to be used by JAXB only. */ protected AbstractImbalanceEvent() { imbalance = new ImbalanceBean(); } /** * imbalance value */ @XmlElement private final ImbalanceBean imbalance; private static final long serialVersionUID = 981566862437586058L; }