package org.marketcetera.photon.views; import static org.marketcetera.photon.views.FutureToMemento.EXPIRATION_MONTH_ATTRIBUTE; import static org.marketcetera.photon.views.FutureToMemento.EXPIRATION_YEAR_ATTRIBUTE; import static org.marketcetera.photon.views.FutureToMemento.FUTURE_TAG; import static org.marketcetera.photon.views.FutureToMemento.SYMBOL_ATTRIBUTE; import org.eclipse.ui.IMemento; import org.marketcetera.trade.Future; import org.marketcetera.trade.FutureExpirationMonth; import org.marketcetera.trade.Instrument; import org.marketcetera.util.misc.ClassVersion; /* $License$ */ /** * Facilitates deserialization of a {@link Future} from an Eclipse * {@link IMemento} . * * @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a> * @version $Id: FutureFromMemento.java 16154 2012-07-14 16:34:05Z colin $ * @since 2.1.0 */ @ClassVersion("$Id: FutureFromMemento.java 16154 2012-07-14 16:34:05Z colin $") public class FutureFromMemento extends InstrumentFromMemento { /* (non-Javadoc) * @see org.marketcetera.photon.views.InstrumentFromMemento#doRestore(org.eclipse.ui.IMemento) */ @Override protected Instrument doRestore(IMemento inMemento) { IMemento future = inMemento.getChild(FUTURE_TAG); return new Future(future.getString(SYMBOL_ATTRIBUTE), FutureExpirationMonth.valueOf(FutureExpirationMonth.class, future.getString(EXPIRATION_MONTH_ATTRIBUTE)), future.getInteger(EXPIRATION_YEAR_ATTRIBUTE)); } /* (non-Javadoc) * @see org.marketcetera.core.instruments.DynamicInstrumentHandler#isHandled(java.lang.Object) */ @Override protected boolean isHandled(IMemento inValue) { return inValue.getChildren(FUTURE_TAG).length == 1; } }