/*
* Copyright (C) 2012 - present by Yann Le Tallec.
* Please see distribution for license.
*/
package com.assylias.jbloomberg;
import com.bloomberglp.blpapi.Element;
import com.bloomberglp.blpapi.Request;
import com.bloomberglp.blpapi.Service;
import com.bloomberglp.blpapi.Session;
import java.time.format.DateTimeFormatter;
import java.util.Map;
/**
*
*/
abstract class AbstractRequestBuilder<T extends RequestResult> implements RequestBuilder<T> {
final static DateTimeFormatter BB_REQUEST_DATE_FORMATTER = DateTimeFormatter.BASIC_ISO_DATE; //'20111203'
final static DateTimeFormatter BB_REQUEST_DATE_TIME_FORMATTER = DateTimeFormatter.ISO_LOCAL_DATE_TIME; //'2011-12-03T10:15:30'
@Override
public Request buildRequest(Session session) {
Service service = session.getService(getServiceType().getUri());
Request request = service.createRequest(getRequestType().toString());
buildRequest(request);
return request;
}
static void addCollectionToElement(Request request, Iterable<String> collection, String elementName) {
Element element = request.getElement(elementName);
for (String item : collection) {
element.appendValue(item);
}
}
static void addOverrides(Request request, Map<String, String> overrides) {
Element overridesElt = request.getElement("overrides");
for (Map.Entry<String, String> e : overrides.entrySet()) {
Element override = overridesElt.appendElement();
override.setElement("fieldId", e.getKey());
override.setElement("value", e.getValue());
}
}
/**
*
* @param request an empty Request that needs to be populated
*/
protected abstract void buildRequest(Request request);
}