All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.factset.sdk.FactSetFundamentals.models.BatchResult Maven / Gradle / Ivy

There is a newer version: 3.1.1
Show newest version
/*
 * FactSet Fundamentals API
 * Gain access to current, comprehensive, and comparative information on securities in worldwide developed and emerging markets. Composed of annual and interim/quarterly data, detailed historical financial statement content, per-share data, and calculated ratios, FactSet Fundamentals provides you with the information you need for a global investment perspective.

This API is rate-limited to 10 requests per second and 10 concurrent requests per user.

* * The version of the OpenAPI document: 2.2.0 * Contact: [email protected] * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ package com.factset.sdk.FactSetFundamentals.models; import java.util.Objects; import java.util.Arrays; import java.util.Map; import java.util.HashMap; import com.factset.sdk.FactSetFundamentals.models.Fundamental; import com.factset.sdk.FactSetFundamentals.models.Segment; import com.factset.sdk.FactSetFundamentals.models.SegmentValue; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.time.LocalDate; import org.openapitools.jackson.nullable.JsonNullable; import com.fasterxml.jackson.annotation.JsonIgnore; import org.openapitools.jackson.nullable.JsonNullable; import java.util.NoSuchElementException; import java.io.Serializable; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.factset.sdk.FactSetFundamentals.JSON; import com.fasterxml.jackson.core.type.TypeReference; import jakarta.ws.rs.core.GenericType; import jakarta.ws.rs.core.Response; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.math.BigDecimal; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonToken; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.MapperFeature; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.deser.std.StdDeserializer; import com.fasterxml.jackson.databind.ser.std.StdSerializer; import com.factset.sdk.FactSetFundamentals.JSON; @jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") @JsonDeserialize(using = BatchResult.BatchResultDeserializer.class) @JsonSerialize(using = BatchResult.BatchResultSerializer.class) public class BatchResult extends AbstractOpenApiSchema implements Serializable { private static final Logger log = Logger.getLogger(BatchResult.class.getName()); public static class BatchResultSerializer extends StdSerializer { public BatchResultSerializer(Class t) { super(t); } public BatchResultSerializer() { this(null); } @Override public void serialize(BatchResult value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeObject(value.getActualInstance()); } } public static class BatchResultDeserializer extends StdDeserializer { public BatchResultDeserializer() { this(BatchResult.class); } public BatchResultDeserializer(Class vc) { super(vc); } @Override public BatchResult deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { JsonNode tree = jp.readValueAsTree(); Object deserialized = null; boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS); int match = 0; JsonToken token = tree.traverse(jp.getCodec()).nextToken(); // deserialize Fundamental try { boolean attemptParsing = true; // ensure that we respect type coercion as set on the client ObjectMapper if (Fundamental.class.equals(Integer.class) || Fundamental.class.equals(Long.class) || Fundamental.class.equals(Float.class) || Fundamental.class.equals(Double.class) || Fundamental.class.equals(Boolean.class) || Fundamental.class.equals(String.class)) { attemptParsing = typeCoercion; if (!attemptParsing) { attemptParsing |= ((Fundamental.class.equals(Integer.class) || Fundamental.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT); attemptParsing |= ((Fundamental.class.equals(Float.class) || Fundamental.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT); attemptParsing |= (Fundamental.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); attemptParsing |= (Fundamental.class.equals(String.class) && token == JsonToken.VALUE_STRING); } } if (attemptParsing) { deserialized = tree.traverse(jp.getCodec()).readValueAs(new TypeReference() { }); // TODO: there is no validation against JSON schema constraints // (min, max, enum, pattern...), this does not perform a strict JSON // validation, which means the 'match' count may be higher than it should be. match++; log.log(Level.FINER, "Input data matches schema 'Fundamental'"); } } catch (Exception e) { // deserialization failed, continue log.log(Level.FINER, "Input data does not match schema 'Fundamental'", e); } // deserialize Segment try { boolean attemptParsing = true; // ensure that we respect type coercion as set on the client ObjectMapper if (Segment.class.equals(Integer.class) || Segment.class.equals(Long.class) || Segment.class.equals(Float.class) || Segment.class.equals(Double.class) || Segment.class.equals(Boolean.class) || Segment.class.equals(String.class)) { attemptParsing = typeCoercion; if (!attemptParsing) { attemptParsing |= ((Segment.class.equals(Integer.class) || Segment.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT); attemptParsing |= ((Segment.class.equals(Float.class) || Segment.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT); attemptParsing |= (Segment.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); attemptParsing |= (Segment.class.equals(String.class) && token == JsonToken.VALUE_STRING); } } if (attemptParsing) { deserialized = tree.traverse(jp.getCodec()).readValueAs(new TypeReference() { }); // TODO: there is no validation against JSON schema constraints // (min, max, enum, pattern...), this does not perform a strict JSON // validation, which means the 'match' count may be higher than it should be. match++; log.log(Level.FINER, "Input data matches schema 'Segment'"); } } catch (Exception e) { // deserialization failed, continue log.log(Level.FINER, "Input data does not match schema 'Segment'", e); } if (match == 1) { BatchResult ret = new BatchResult(); ret.setActualInstance(deserialized); return ret; } throw new IOException(String.format("Failed deserialization for BatchResult: %d classes match result, expected 1", match)); } /** * Handle deserialization of the 'null' value. */ @Override public BatchResult getNullValue(DeserializationContext ctxt) throws JsonMappingException { throw new JsonMappingException(ctxt.getParser(), "BatchResult cannot be null"); } } // store a list of schema names defined in oneOf public static final Map schemas = new HashMap(); public BatchResult() { super("oneOf", Boolean.FALSE); } public BatchResult(Fundamental o) { super("oneOf", Boolean.FALSE); setActualInstance(o); } public BatchResult(Segment o) { super("oneOf", Boolean.FALSE); setActualInstance(o); } static { schemas.put("Fundamental", new GenericType() { }); schemas.put("Segment", new GenericType() { }); JSON.registerDescendants(BatchResult.class, Collections.unmodifiableMap(schemas)); } @Override public Map getSchemas() { return BatchResult.schemas; } /** * Set the instance that matches the oneOf child schema, check * the instance parameter is valid against the oneOf child schemas: * Fundamental, Segment * * It could be an instance of the 'oneOf' schemas. * The oneOf child schemas may themselves be a composed schema (allOf, anyOf, oneOf). */ @Override public void setActualInstance(Object instance) { // Fundamental if (JSON.isInstanceOf(Fundamental.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } // Segment if (JSON.isInstanceOf(Segment.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } throw new RuntimeException("Invalid instance type. Must be Fundamental, Segment"); } /** * Get the actual instance, which can be the following: * Fundamental, Segment * * @return The actual instance (Fundamental, Segment) */ @Override public Object getActualInstance() { return super.getActualInstance(); } /** * Get the actual instance of `Fundamental`. If the actual instance is not `Fundamental`, * the ClassCastException will be thrown. * * @return The actual instance of `Fundamental` * @throws ClassCastException if the instance is not `Fundamental` */ public Fundamental getFundamental() throws ClassCastException { return (Fundamental)super.getActualInstance(); } /** * Get the actual instance of `Segment`. If the actual instance is not `Segment`, * the ClassCastException will be thrown. * * @return The actual instance of `Segment` * @throws ClassCastException if the instance is not `Segment` */ public Segment getSegment() throws ClassCastException { return (Segment)super.getActualInstance(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy