package org.marketcetera.client.instruments;
import org.marketcetera.client.OrderValidationException;
import org.marketcetera.trade.Future;
import org.marketcetera.trade.Instrument;
import org.marketcetera.util.log.I18NBoundMessage1P;
/* $License$ */
/**
* Validates future instruments.
*
* @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a>
* @version $Id: FutureValidationHandler.java 16154 2012-07-14 16:34:05Z colin $
* @since 2.1.0
*/
public class FutureValidationHandler
extends InstrumentValidationHandler<Future>
{
/**
* Validates that the given value represents a valid future expiration year.
*
* @param inExpirationYear a <code>String</code> value
* @throws OrderValidationException if the given value is invalid
*/
public static void validateExpirationYear(String inExpirationYear)
throws OrderValidationException
{
if(inExpirationYear == null ||
inExpirationYear.isEmpty()) {
return;
}
try {
if(Integer.parseInt(inExpirationYear) <= 0) {
throw new OrderValidationException(new I18NBoundMessage1P(Messages.INVALID_FUTURE_EXPIRATION_YEAR_FORMAT,
inExpirationYear));
}
} catch (OrderValidationException e) {
throw e;
} catch (Exception e) {
throw new OrderValidationException(new I18NBoundMessage1P(Messages.INVALID_FUTURE_EXPIRATION_YEAR_FORMAT,
inExpirationYear));
}
}
/**
* Validates that the given value represents a valid future expiration year.
*
* @param inExpirationYear an <code>int</code> value
* @throws OrderValidationException if the given value is invalid
*/
public static void validateExpirationYear(int inExpirationYear)
throws OrderValidationException
{
if(inExpirationYear <= 0) {
throw new OrderValidationException(new I18NBoundMessage1P(Messages.INVALID_FUTURE_EXPIRATION_YEAR_FORMAT,
inExpirationYear));
}
}
/**
* Create a new FutureValidationHandler instance.
*/
public FutureValidationHandler()
{
super(Future.class);
}
/* (non-Javadoc)
* @see org.marketcetera.client.instruments.InstrumentValidationHandler#validate(org.marketcetera.trade.Instrument)
*/
@Override
public void validate(Instrument inInstrument)
throws OrderValidationException
{
Future option = (Future)inInstrument;
validateExpirationYear(option.getExpirationYear());
}
}