package org.marketcetera.photon.views;
import org.eclipse.ui.IMemento;
import org.marketcetera.trade.Option;
import org.marketcetera.util.misc.ClassVersion;
/* $License$ */
/**
* Facilitates serialization of an {@link Option} to an Eclipse {@link IMemento}
* .
*
* @author <a href="mailto:will@marketcetera.com">Will Horn</a>
* @version $Id: OptionToMemento.java 16154 2012-07-14 16:34:05Z colin $
* @since 2.0.0
*/
@ClassVersion("$Id: OptionToMemento.java 16154 2012-07-14 16:34:05Z colin $")
public class OptionToMemento extends InstrumentToMemento<Option> {
static final String OPTION_TAG = "option"; //$NON-NLS-1$
static final String SYMBOL_ATTRIBUTE = "symbol"; //$NON-NLS-1$
static final String EXPIRY_ATTRIBUTE = "expiry"; //$NON-NLS-1$
static final String STRIKE_ATTRIBUTE = "strike"; //$NON-NLS-1$
static final String TYPE_ATTRIBUTE = "type"; //$NON-NLS-1$
/**
* Constructor.
*/
public OptionToMemento() {
super(Option.class);
}
@Override
protected void doSave(Option instrument, IMemento memento) {
IMemento option = memento.createChild(OPTION_TAG);
option.putString(SYMBOL_ATTRIBUTE, instrument.getSymbol());
option.putString(EXPIRY_ATTRIBUTE, instrument.getExpiry());
option.putString(STRIKE_ATTRIBUTE, instrument.getStrikePrice()
.toPlainString());
option.putString(TYPE_ATTRIBUTE, instrument.getType().name());
}
}