/*
* Copyright (C) 2012 - present by Yann Le Tallec.
* Please see distribution for license.
*/
package com.assylias.jbloomberg;
import java.time.LocalDate;
import java.time.OffsetDateTime;
import java.util.HashSet;
import java.util.Set;
/**
* A basic implementation of the RequestResult interface, that only deals with errors.
*/
abstract class AbstractRequestResult implements RequestResult {
/**
* A set of security identifiers that returned error messages - can be empty
*/
private final Set<String> securityErrors = new HashSet<>();
/**
* A set of fields that returned error messages - can be empty
*/
private final Set<String> fieldErrors = new HashSet<>();
@Override
public synchronized boolean hasErrors() {
return !(securityErrors.isEmpty() && fieldErrors.isEmpty());
}
@Override
public synchronized Set<String> getFieldErrors() {
return fieldErrors;
}
@Override
public synchronized Set<String> getSecurityErrors() {
return securityErrors;
}
synchronized void addSecurityError(String security) {
securityErrors.add(security);
}
synchronized void addFieldError(String field) {
fieldErrors.add(field);
}
//for HistoricalData
void add(LocalDate date, String security, String field, Object value) {
throw new UnsupportedOperationException("Subclasses need to override this method if it is required");
}
//for IntradayBarData and IntradayTickData
void add(OffsetDateTime date, String field, Object value) {
throw new UnsupportedOperationException("Subclasses need to override this method if it is required");
}
//for ReferenceData
void add(String security, String field, Object value) {
throw new UnsupportedOperationException("Subclasses need to override this method if it is required");
}
}