Package com.opengamma.livedata.cogda.msg

Source Code of com.opengamma.livedata.cogda.msg.CogdaLiveDataBuilderUtil

/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.livedata.cogda.msg;

import org.fudgemsg.FudgeContext;
import org.fudgemsg.FudgeMsg;
import org.fudgemsg.MutableFudgeMsg;
import org.fudgemsg.mapping.FudgeSerializer;

import com.opengamma.id.ExternalId;

/**
*
*/
public final class CogdaLiveDataBuilderUtil {
  private CogdaLiveDataBuilderUtil() {
  }

  public static void addExternalId(MutableFudgeMsg msg, ExternalId subscriptionId, String normalizationScheme) {
    msg.add("subscriptionIdScheme", subscriptionId.getScheme().getName());
    msg.add("subscriptionIdValue", subscriptionId.getValue());
    if (normalizationScheme != null) {
      msg.add("normalizationScheme", normalizationScheme);
    }
  }
 
  public static void addResponseFields(MutableFudgeMsg msg, CogdaLiveDataCommandResponseMessage response) {
    msg.add("correlationId", response.getCorrelationId());
    addExternalId(msg, response.getSubscriptionId(), response.getNormalizationScheme());
   
    msg.add("genericResult", response.getGenericResult().name());
    msg.add("userMessage", response.getUserMessage());
   
  }
 
  public static ExternalId parseExternalId(FudgeMsg msg) {
    ExternalId externalId = ExternalId.of(msg.getString("subscriptionIdScheme"), msg.getString("subscriptionIdValue"));
    return externalId;
  }
 
  public static void setResponseFields(FudgeMsg msg, CogdaLiveDataCommandResponseMessage response) {
    if (!msg.hasField("correlationId")) {
      response.setCorrelationId(-1L);
    } else {
      response.setCorrelationId(msg.getLong("correlationId"));
    }
    response.setSubscriptionId(parseExternalId(msg));
    response.setNormalizationScheme(msg.getString("normalizationScheme"));
    response.setGenericResult(CogdaCommandResponseResult.valueOf(msg.getString("genericResult")));
    response.setUserMessage(msg.getString("userMessage"));
  }
 
  public static FudgeMsg buildCommandResponseMessage(FudgeContext fudgeContext, CogdaLiveDataCommandResponseMessage responseMessage) {
    if (responseMessage instanceof CogdaLiveDataSubscriptionResponseMessage) {
      return CogdaLiveDataSubscriptionResponseBuilder.buildMessageStatic(new FudgeSerializer(fudgeContext), (CogdaLiveDataSubscriptionResponseMessage) responseMessage);
    } else if (responseMessage instanceof CogdaLiveDataSnapshotResponseMessage) {
      return CogdaLiveDataSnapshotResponseBuilder.buildMessageStatic(new FudgeSerializer(fudgeContext), (CogdaLiveDataSnapshotResponseMessage) responseMessage);
    }
    return null;
  }
 
}
TOP

Related Classes of com.opengamma.livedata.cogda.msg.CogdaLiveDataBuilderUtil

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.