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

com.factset.sdk.FactSetFundamentals.models.SegmentValue 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 io.swagger.annotations.ApiModel; 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 = SegmentValue.SegmentValueDeserializer.class) @JsonSerialize(using = SegmentValue.SegmentValueSerializer.class) public class SegmentValue extends AbstractOpenApiSchema implements Serializable { private static final Logger log = Logger.getLogger(SegmentValue.class.getName()); public static class SegmentValueSerializer extends StdSerializer { public SegmentValueSerializer(Class t) { super(t); } public SegmentValueSerializer() { this(null); } @Override public void serialize(SegmentValue value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeObject(value.getActualInstance()); } } public static class SegmentValueDeserializer extends StdDeserializer { public SegmentValueDeserializer() { this(SegmentValue.class); } public SegmentValueDeserializer(Class vc) { super(vc); } @Override public SegmentValue 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 String try { boolean attemptParsing = true; // ensure that we respect type coercion as set on the client ObjectMapper if (String.class.equals(Integer.class) || String.class.equals(Long.class) || String.class.equals(Float.class) || String.class.equals(Double.class) || String.class.equals(Boolean.class) || String.class.equals(String.class)) { attemptParsing = typeCoercion; if (!attemptParsing) { attemptParsing |= ((String.class.equals(Integer.class) || String.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT); attemptParsing |= ((String.class.equals(Float.class) || String.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT); attemptParsing |= (String.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); attemptParsing |= (String.class.equals(String.class) && token == JsonToken.VALUE_STRING); attemptParsing |= (token == JsonToken.VALUE_NULL); } } 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 'String'"); } } catch (Exception e) { // deserialization failed, continue log.log(Level.FINER, "Input data does not match schema 'String'", e); } // deserialize Double try { boolean attemptParsing = true; // ensure that we respect type coercion as set on the client ObjectMapper if (Double.class.equals(Integer.class) || Double.class.equals(Long.class) || Double.class.equals(Float.class) || Double.class.equals(Double.class) || Double.class.equals(Boolean.class) || Double.class.equals(String.class)) { attemptParsing = typeCoercion; if (!attemptParsing) { attemptParsing |= ((Double.class.equals(Integer.class) || Double.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT); attemptParsing |= ((Double.class.equals(Float.class) || Double.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT); attemptParsing |= (Double.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); attemptParsing |= (Double.class.equals(String.class) && token == JsonToken.VALUE_STRING); attemptParsing |= (token == JsonToken.VALUE_NULL); } } 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 'Double'"); } } catch (Exception e) { // deserialization failed, continue log.log(Level.FINER, "Input data does not match schema 'Double'", e); } if (match == 1) { SegmentValue ret = new SegmentValue(); ret.setActualInstance(deserialized); return ret; } throw new IOException(String.format("Failed deserialization for SegmentValue: %d classes match result, expected 1", match)); } /** * Handle deserialization of the 'null' value. */ @Override public SegmentValue getNullValue(DeserializationContext ctxt) throws JsonMappingException { return null; } } // store a list of schema names defined in oneOf public static final Map schemas = new HashMap(); public SegmentValue() { super("oneOf", Boolean.TRUE); } public SegmentValue(String o) { super("oneOf", Boolean.TRUE); setActualInstance(o); } public SegmentValue(Double o) { super("oneOf", Boolean.TRUE); setActualInstance(o); } static { schemas.put("Double", new GenericType() { }); schemas.put("String", new GenericType() { }); JSON.registerDescendants(SegmentValue.class, Collections.unmodifiableMap(schemas)); } @Override public Map getSchemas() { return SegmentValue.schemas; } /** * Set the instance that matches the oneOf child schema, check * the instance parameter is valid against the oneOf child schemas: * Double, String * * 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) { if (instance == null) { super.setActualInstance(instance); return; } // String if (JSON.isInstanceOf(String.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } // Double if (JSON.isInstanceOf(Double.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } throw new RuntimeException("Invalid instance type. Must be Double, String"); } /** * Get the actual instance, which can be the following: * Double, String * * @return The actual instance (Double, String) */ @Override public Object getActualInstance() { return super.getActualInstance(); } /** * Get the actual instance of `String`. If the actual instance is not `String`, * the ClassCastException will be thrown. * * @return The actual instance of `String` * @throws ClassCastException if the instance is not `String` */ public String getString() throws ClassCastException { return (String)super.getActualInstance(); } /** * Get the actual instance of `Double`. If the actual instance is not `Double`, * the ClassCastException will be thrown. * * @return The actual instance of `Double` * @throws ClassCastException if the instance is not `Double` */ public Double getDouble() throws ClassCastException { return (Double)super.getActualInstance(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy