@Override public MutableFudgeMsg buildMessage( FudgeSerializationContext context, CurveInstrumentProvider object) { if (object instanceof BloombergFutureCurveInstrumentProvider) { return _bloombergFutureBuilder.buildMessage( context, (BloombergFutureCurveInstrumentProvider) object); } else if (object instanceof StaticCurveInstrumentProvider) { return _staticBuilder.buildMessage(context, (StaticCurveInstrumentProvider) object); } else if (object instanceof SyntheticIdentifierCurveInstrumentProvider) { return _syntheticBuilder.buildMessage( context, (SyntheticIdentifierCurveInstrumentProvider) object); } else { throw new OpenGammaRuntimeException( "Unsupported subclass - needs explicit support for mongo serialization"); } }
@Override public CurveInstrumentProvider buildObject( FudgeDeserializationContext context, FudgeMsg message) { String type = message.getString("type"); if (type.equals(BloombergFutureCurveInstrumentProviderBuilder.TYPE)) { return _bloombergFutureBuilder.buildObject(context, message); } else if (type.equals(StaticCurveInstrumentProviderBuilder.TYPE)) { return _staticBuilder.buildObject(context, message); } else if (type.equals(SyntheticIdentifierCurveInstrumentProviderBuilder.TYPE)) { return _syntheticBuilder.buildObject(context, message); } else { throw new OpenGammaRuntimeException( "Unsupported subclass type ('" + type + "') - needs explicit support for mongo serialization"); } }