Package com.opengamma.core.marketdatasnapshot.impl

Source Code of com.opengamma.core.marketdatasnapshot.impl.ManageableCurveSnapshot

/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.core.marketdatasnapshot.impl;

import com.opengamma.core.marketdatasnapshot.CurveSnapshot;
import org.fudgemsg.FudgeField;
import org.fudgemsg.FudgeMsg;
import org.fudgemsg.MutableFudgeMsg;
import org.fudgemsg.mapping.FudgeDeserializer;
import org.fudgemsg.mapping.FudgeSerializer;
import org.threeten.bp.Instant;

/**
* Mutable snapshot of curve data.
*/
public class ManageableCurveSnapshot implements CurveSnapshot {

  /**
   * The valuation instant.
   */
  private Instant _valuationTime;
  /**
   * The values.
   */
  private ManageableUnstructuredMarketDataSnapshot _values;

  /**
   * Gets the values.
   *
   * @return the values
   */
  @Override
  public ManageableUnstructuredMarketDataSnapshot getValues() {
    return _values;
  }

  /**
   * Sets the values.
   *
   * @param values the values
   */
  public void setValues(final ManageableUnstructuredMarketDataSnapshot values) {
    _values = values;
  }

  /**
   * Gets the valuation instant.
   *
   * @return the valuation instant
   */
  @Override
  public Instant getValuationTime() {
    return _valuationTime;
  }

  /**
   * Sets the valuation instant.
   *
   * @param valuationTime the valuation instant
   */
  public void setValuationTime(final Instant valuationTime) {
    _valuationTime = valuationTime;
  }

  public FudgeMsg toFudgeMsg(final FudgeSerializer serializer) {
    final MutableFudgeMsg ret = serializer.newMessage();
    // TODO: this should not be adding its own class header; the caller should add it based on application knowledge about the receiving end
    FudgeSerializer.addClassHeader(ret, ManageableCurveSnapshot.class);
    serializer.addToMessage(ret, "values", null, _values);
    serializer.addToMessage(ret, "valuationTime", null, _valuationTime);
    return ret;
  }

  public static ManageableCurveSnapshot fromFudgeMsg(final FudgeDeserializer deserializer, final FudgeMsg msg) {
    final ManageableCurveSnapshot ret = new ManageableCurveSnapshot();
    FudgeField field = msg.getByName("values");
    if (field != null) {
      ret.setValues(deserializer.fieldValueToObject(ManageableUnstructuredMarketDataSnapshot.class, field));
    }
    field = msg.getByName("valuationTime");
    if (field != null) {
      ret.setValuationTime(deserializer.fieldValueToObject(Instant.class, field));
    }
    return ret;
  }
}
TOP

Related Classes of com.opengamma.core.marketdatasnapshot.impl.ManageableCurveSnapshot

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.