/** * Creates a shallow copy of the given <code>TradeBean</code>. * * @param inBean a <code>TradeBean</code> value * @return a <code>TradeBean</code> value */ public static TradeBean copy(TradeBean inBean) { TradeBean newBean = new TradeBean(); copyAttributes(inBean, newBean); return newBean; } /**
/** * Create a new TradeEventImpl instance. * * @param inTrade a <code>TradeBean</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> * @throws IllegalArgumentException if <code>Price</code> is <code>null</code> * @throws IllegalArgumentException if <code>Size</code> is <code>null</code> * @throws IllegalArgumentException if <code>Exchange</code> is <code>null</code> or empty * @throws IllegalArgumentException if <code>ExchangeTimestamp</code> is <code>null</code> or empty */ protected AbstractTradeEventImpl(TradeBean inTrade) { tradeData = TradeBean.copy(inTrade); tradeData.setDefaults(); tradeData.validate(); } /**
@Override public String toString() { return String.format("Trade: %s at %s of %s on %s at %s %s %s [%s with source %s at %s]", //$NON-NLS-1$ getSize(), getPrice(), getInstrument(), getExchange(), getExchangeTimestamp(), getEventType(), tradeCondition, getMessageId(), getSource(), getTimestamp()); } /**
@Override public Instrument getInstrument() { return tradeData.getInstrument(); } /* (non-Javadoc)
/** * Create a new AbstractTradeEventImpl instance. * * <p>This constructor is intended to be used by JAXB only. */ protected AbstractTradeEventImpl() { tradeData = new TradeBean(); } /**
@Override public final long getMessageId() { return tradeData.getMessageId(); } /* (non-Javadoc)
@Override public EventType getEventType() { return tradeData.getEventType(); } /* (non-Javadoc)
@Override public final String getExchange() { return tradeData.getExchange(); } /* (non-Javadoc)
@Override public String getInstrumentAsString() { return tradeData.getInstrumentAsString(); } /* (non-Javadoc)
@Override public final BigDecimal getPrice() { return tradeData.getPrice(); } /* (non-Javadoc)
@Override public final Date getExchangeTimestamp() { return tradeData.getExchangeTimestamp(); } /* (non-Javadoc)
@Override public TradeEvent create() { if(getTradeData().getInstrument() instanceof Equity) { return new EquityTradeEventImpl(getTradeData()); } throw new IllegalArgumentException(VALIDATION_EQUITY_REQUIRED.getText()); } };
@Override public TradeEvent create() { if(getTradeData().getInstrument() instanceof Currency) { return new CurrencyTradeEventImpl(getTradeData(), getCurrency()); } throw new IllegalArgumentException(VALIDATION_CURRENCY_REQUIRED.getText()); } };
@Override public TradeEvent create() { if(getTradeData().getInstrument() instanceof Option) { return new OptionTradeEventImpl(getTradeData(), getOption()); } throw new IllegalArgumentException(VALIDATION_OPTION_REQUIRED.getText()); } };
@Override public TradeEvent create() { if(getTradeData().getInstrument() instanceof Future) { return new FutureTradeEventImpl(getTradeData(), getFuture()); } throw new IllegalArgumentException(VALIDATION_FUTURE_REQUIRED.getText()); } };
@Override public TradeEvent create() { if(getTradeData().getInstrument() instanceof ConvertibleBond) { return new ConvertibleBondTradeEventImpl(getTradeData(), getConvertibleBond()); } throw new IllegalArgumentException(VALIDATION_BOND_REQUIRED.getText()); } };