package org.marketcetera.photon.views; import java.math.BigDecimal; import org.eclipse.ui.IMemento; import org.marketcetera.trade.Option; import org.marketcetera.trade.OptionType; import org.marketcetera.util.misc.ClassVersion; import static org.marketcetera.photon.views.OptionToMemento.*; /* $License$ */ /** * Facilitates deserialization of an {@link Option} from an Eclipse * {@link IMemento} . * * @author <a href="mailto:will@marketcetera.com">Will Horn</a> * @version $Id: OptionFromMemento.java 16154 2012-07-14 16:34:05Z colin $ * @since 2.0.0 */ @ClassVersion("$Id: OptionFromMemento.java 16154 2012-07-14 16:34:05Z colin $") public class OptionFromMemento extends InstrumentFromMemento { @Override protected boolean isHandled(IMemento inValue) { return inValue.getChildren(OPTION_TAG).length == 1; } @Override protected Option doRestore(IMemento memento) { IMemento option = memento.getChild(OPTION_TAG); return new Option(option.getString(SYMBOL_ATTRIBUTE), option .getString(EXPIRY_ATTRIBUTE), new BigDecimal(option .getString(STRIKE_ATTRIBUTE)), OptionType.valueOf(option .getString(TYPE_ATTRIBUTE))); } }