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.EventType; import org.marketcetera.event.MarketstatEvent; import org.marketcetera.event.beans.HasEventBean; import org.marketcetera.event.beans.MarketstatBean; import org.marketcetera.event.util.EventServices; import org.marketcetera.trade.Instrument; import org.marketcetera.util.misc.ClassVersion; /* $License$ */ /** * Provides an implementation for {@link MarketstatEvent}. * * @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a> * @version $Id: AbstractMarketstatEventImpl.java 16867 2014-03-23 23:06:05Z colin $ * @since 2.0.0 */ @ThreadSafe @XmlAccessorType(XmlAccessType.NONE) @ClassVersion("$Id: AbstractMarketstatEventImpl.java 16867 2014-03-23 23:06:05Z colin $") abstract class AbstractMarketstatEventImpl implements MarketstatEvent, HasEventBean { /* (non-Javadoc) * @see org.marketcetera.event.beans.HasEventBean#getEventBean() */ @Override public MarketstatBean getEventBean() { return marketstat; } /* (non-Javadoc) * @see org.marketcetera.event.MarketstatEvent#getCloseDate() */ @Override public String getCloseDate() { return marketstat.getCloseDate(); } /* (non-Javadoc) * @see org.marketcetera.event.MarketstatEvent#getCloseExchange() */ @Override public String getCloseExchange() { return marketstat.getCloseExchange(); } /* (non-Javadoc) * @see org.marketcetera.event.MarketstatEvent#getClosePrice() */ @Override public BigDecimal getClose() { return marketstat.getClose(); } /* (non-Javadoc) * @see org.marketcetera.event.MarketstatEvent#getHighExchange() */ @Override public String getHighExchange() { return marketstat.getHighExchange(); } /* (non-Javadoc) * @see org.marketcetera.event.MarketstatEvent#getHighPrice() */ @Override public BigDecimal getHigh() { return marketstat.getHigh(); } /* (non-Javadoc) * @see org.marketcetera.event.MarketstatEvent#getInstrument() */ @Override public Instrument getInstrument() { return marketstat.getInstrument(); } /* (non-Javadoc) * @see org.marketcetera.event.HasInstrument#getInstrumentAsString() */ @Override public String getInstrumentAsString() { return marketstat.getInstrumentAsString(); } /* (non-Javadoc) * @see org.marketcetera.event.MarketstatEvent#getLowExchange() */ @Override public String getLowExchange() { return marketstat.getLowExchange(); } /* (non-Javadoc) * @see org.marketcetera.event.MarketstatEvent#getLowPrice() */ @Override public BigDecimal getLow() { return marketstat.getLow(); } /* (non-Javadoc) * @see org.marketcetera.event.MarketstatEvent#getOpenExchange() */ @Override public String getOpenExchange() { return marketstat.getOpenExchange(); } /* (non-Javadoc) * @see org.marketcetera.event.MarketstatEvent#getOpenPrice() */ @Override public BigDecimal getOpen() { return marketstat.getOpen(); } /* (non-Javadoc) * @see org.marketcetera.event.MarketstatEvent#getPreviousCloseDate() */ @Override public String getPreviousCloseDate() { return marketstat.getPreviousCloseDate(); } /* (non-Javadoc) * @see org.marketcetera.event.MarketstatEvent#getPreviousClosePrice() */ @Override public BigDecimal getPreviousClose() { return marketstat.getPreviousClose(); } /* (non-Javadoc) * @see org.marketcetera.event.MarketstatEvent#getTradeHighTime() */ @Override public String getTradeHighTime() { return marketstat.getTradeHighTime(); } /* (non-Javadoc) * @see org.marketcetera.event.MarketstatEvent#getTradeLowTime() */ @Override public String getTradeLowTime() { return marketstat.getTradeLowTime(); } /* (non-Javadoc) * @see org.marketcetera.event.MarketstatEvent#getVolume() */ @Override public BigDecimal getVolume() { return marketstat.getVolume(); } /* (non-Javadoc) * @see org.marketcetera.event.MarketstatEvent#getValue() */ @Override public BigDecimal getValue() { return marketstat.getValue(); } /* (non-Javadoc) * @see org.marketcetera.event.Event#getMessageId() */ @Override public long getMessageId() { return marketstat.getMessageId(); } /* (non-Javadoc) * @see org.marketcetera.event.Event#getSource() */ @Override public Object getSource() { return marketstat.getSource(); } /* (non-Javadoc) * @see org.marketcetera.event.Event#getMetaType() */ @Override public EventType getEventType() { return marketstat.getEventType(); } /* (non-Javadoc) * @see org.marketcetera.event.MarketstatEvent#setEventType(org.marketcetera.event.EventType) */ @Override public void setEventType(EventType inEventType) { marketstat.setEventType(inEventType); } /* (non-Javadoc) * @see org.marketcetera.event.Event#getTimestamp() */ @Override public Date getTimestamp() { return marketstat.getTimestamp(); } /* (non-Javadoc) * @see org.marketcetera.event.Event#setSource(java.lang.Object) */ @Override public void setSource(Object inSource) { marketstat.setSource(inSource); } /* (non-Javadoc) * @see org.marketcetera.event.Event#getProvider() */ @Override public String getProvider() { return marketstat.getProvider(); } /* (non-Javadoc) * @see org.marketcetera.event.Event#setProvider(java.lang.String) */ @Override public void setProvider(String inProvider) { marketstat.setProvider(inProvider); } /* (non-Javadoc) * @see org.marketcetera.event.TimestampCarrier#getTimeMillis() */ @Override public long getTimeMillis() { return marketstat.getTimeMillis(); } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { String closeDateString = getCloseDate() == null ? "---" : getCloseDate(); //$NON-NLS-1$ String previousCloseDateString = getPreviousCloseDate() == null ? "---" : getPreviousCloseDate(); //$NON-NLS-1$ return String.format("Statistics for %s [%s] -> Open: %s High: %s Low: %s Close: %s (%s) Previous Close: %s (%s) %s %s %s %s Volume: %s Value: %s", //$NON-NLS-1$ getInstrument().getSymbol(), getEventType(), getOpen(), getHigh(), getLow(), getClose(), closeDateString, getPreviousClose(), previousCloseDateString, getOpenExchange(), getHighExchange(), getLowExchange(), getCloseExchange(), getVolume(), getValue()); } /* (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 AbstractMarketstatEventImpl instance. * * @param inMarketstatBean a <code>MarketstatBean</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 AbstractMarketstatEventImpl(MarketstatBean inMarketstat) { marketstat = MarketstatBean.copy(inMarketstat); marketstat.setDefaults(); marketstat.validate(); } /** * Create a new AbstractMarketstatEventImpl instance. * * <p>This constructor is intended to be used by JAXB only. */ protected AbstractMarketstatEventImpl() { marketstat = new MarketstatBean(); } /** * the marketstat attributes */ @XmlElement private final MarketstatBean marketstat; private static final long serialVersionUID = 1L; }