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

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

/*
 * 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. 
 *
 * The version of the OpenAPI document: 1.0.2
 * 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.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.io.Serializable;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.factset.sdk.FactSetFundamentals.JSON;


/**
 * Metric
 */
@JsonPropertyOrder({
  Metric.JSON_PROPERTY_METRIC,
  Metric.JSON_PROPERTY_NAME,
  Metric.JSON_PROPERTY_CATEGORY,
  Metric.JSON_PROPERTY_SUBCATEGORY,
  Metric.JSON_PROPERTY_OA_PAGE_ID,
  Metric.JSON_PROPERTY_OAURL,
  Metric.JSON_PROPERTY_FACTOR,
  Metric.JSON_PROPERTY_SDF_PACKAGE,
  Metric.JSON_PROPERTY_DATA_TYPE
})
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
public class Metric implements Serializable {
  private static final long serialVersionUID = 1L;

  public static final String JSON_PROPERTY_METRIC = "metric";
  private String metric;

  public static final String JSON_PROPERTY_NAME = "name";
  private String name;

  public static final String JSON_PROPERTY_CATEGORY = "category";
  private String category;

  public static final String JSON_PROPERTY_SUBCATEGORY = "subcategory";
  private String subcategory;

  public static final String JSON_PROPERTY_OA_PAGE_ID = "OAPageId";
  private String oaPageId;

  public static final String JSON_PROPERTY_OAURL = "OAurl";
  private String oaurl;

  public static final String JSON_PROPERTY_FACTOR = "factor";
  private Integer factor;

  /**
   * An indicator for which Standard Data Feed (SDF) package the item is available in - BASIC or ADVANCED. A null value represents items available only in API.
   */
  public enum SdfPackageEnum {
    BASIC("BASIC"),
    
    ADVANCED("ADVANCED");

    private String value;

    SdfPackageEnum(String value) {
      this.value = value;
    }

    @JsonValue
    public String getValue() {
      return value;
    }

    @Override
    public String toString() {
      return String.valueOf(value);
    }

    @JsonCreator
    public static SdfPackageEnum fromValue(String value) {
      for (SdfPackageEnum b : SdfPackageEnum.values()) {
        if (b.value.equals(value)) {
          return b;
        }
      }
      throw new IllegalArgumentException("Unexpected value '" + value + "'");
    }
  }

  public static final String JSON_PROPERTY_SDF_PACKAGE = "sdfPackage";
  private SdfPackageEnum sdfPackage;

  public static final String JSON_PROPERTY_DATA_TYPE = "dataType";
  private String dataType;


  public Metric metric(String metric) {
    this.metric = metric;
    return this;
  }

   /**
   * Metric identifier to be used as `metrics` input in `/fundamentals/v#/fundamentals` endpoint.
   * @return metric
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "FF_ASSETS", value = "Metric identifier to be used as `metrics` input in `/fundamentals/v#/fundamentals` endpoint.")
  @JsonProperty(JSON_PROPERTY_METRIC)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public String getMetric() {
    return metric;
  }


  @JsonProperty(JSON_PROPERTY_METRIC)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setMetric(String metric) {
    this.metric = metric;
  }


  public Metric name(String name) {
    this.name = name;
    return this;
  }

   /**
   * Plain text name of the metric.
   * @return name
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "Total Assets", value = "Plain text name of the metric.")
  @JsonProperty(JSON_PROPERTY_NAME)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public String getName() {
    return name;
  }


  @JsonProperty(JSON_PROPERTY_NAME)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setName(String name) {
    this.name = name;
  }


  public Metric category(String category) {
    this.category = category;
    return this;
  }

   /**
   * Primary Category of metric item, such as, INCOME_STATEMENT, BALANCE_SHEET, CASH_FLOW, or RATIOS.
   * @return category
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "BALANCE_SHEET", value = "Primary Category of metric item, such as, INCOME_STATEMENT, BALANCE_SHEET, CASH_FLOW, or RATIOS.")
  @JsonProperty(JSON_PROPERTY_CATEGORY)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public String getCategory() {
    return category;
  }


  @JsonProperty(JSON_PROPERTY_CATEGORY)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setCategory(String category) {
    this.category = category;
  }


  public Metric subcategory(String subcategory) {
    this.subcategory = subcategory;
    return this;
  }

   /**
   * Sub-category of metric item, such as ASSETS, SUPPLEMENTAL, SHAREHOLDERS_EQUITY, VALUATION, PROFITABILITY, etc.
   * @return subcategory
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "ASSETS", value = "Sub-category of metric item, such as ASSETS, SUPPLEMENTAL, SHAREHOLDERS_EQUITY, VALUATION, PROFITABILITY, etc.")
  @JsonProperty(JSON_PROPERTY_SUBCATEGORY)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public String getSubcategory() {
    return subcategory;
  }


  @JsonProperty(JSON_PROPERTY_SUBCATEGORY)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setSubcategory(String subcategory) {
    this.subcategory = subcategory;
  }


  public Metric oaPageId(String oaPageId) {
    this.oaPageId = oaPageId;
    return this;
  }

   /**
   * The Online Assistant Page ID in D***** format, used to lookup the definition and methodology of the requested item. Visit my.apps.factset.com/oa/pages/[D*****] for details. For example, https://my.apps.factset.com/oa/pages/D10585 will give you the definition for FF_SALES.
   * @return oaPageId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "D10585", value = "The Online Assistant Page ID in D***** format, used to lookup the definition and methodology of the requested item. Visit my.apps.factset.com/oa/pages/[D*****] for details. For example, https://my.apps.factset.com/oa/pages/D10585 will give you the definition for FF_SALES.")
  @JsonProperty(JSON_PROPERTY_OA_PAGE_ID)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public String getOaPageId() {
    return oaPageId;
  }


  @JsonProperty(JSON_PROPERTY_OA_PAGE_ID)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setOaPageId(String oaPageId) {
    this.oaPageId = oaPageId;
  }


  public Metric oaurl(String oaurl) {
    this.oaurl = oaurl;
    return this;
  }

   /**
   * The Online Assistant Page URL, used to lookup the definition and methodology of the requested item. For example, https://my.apps.factset.com/oa/pages/D10585 will give you the definition for FF_SALES.
   * @return oaurl
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "https://my.apps.factset.com/oa/pages/D10585", value = "The Online Assistant Page URL, used to lookup the definition and methodology of the requested item. For example, https://my.apps.factset.com/oa/pages/D10585 will give you the definition for FF_SALES.")
  @JsonProperty(JSON_PROPERTY_OAURL)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public String getOaurl() {
    return oaurl;
  }


  @JsonProperty(JSON_PROPERTY_OAURL)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setOaurl(String oaurl) {
    this.oaurl = oaurl;
  }


  public Metric factor(Integer factor) {
    this.factor = factor;
    return this;
  }

   /**
   * The factor for the metric (e.g. 1000 = thousands).
   * @return factor
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "1000000", value = "The factor for the metric (e.g. 1000 = thousands).")
  @JsonProperty(JSON_PROPERTY_FACTOR)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public Integer getFactor() {
    return factor;
  }


  @JsonProperty(JSON_PROPERTY_FACTOR)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setFactor(Integer factor) {
    this.factor = factor;
  }


  public Metric sdfPackage(SdfPackageEnum sdfPackage) {
    this.sdfPackage = sdfPackage;
    return this;
  }

   /**
   * An indicator for which Standard Data Feed (SDF) package the item is available in - BASIC or ADVANCED. A null value represents items available only in API.
   * @return sdfPackage
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "BASIC", value = "An indicator for which Standard Data Feed (SDF) package the item is available in - BASIC or ADVANCED. A null value represents items available only in API.")
  @JsonProperty(JSON_PROPERTY_SDF_PACKAGE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public SdfPackageEnum getSdfPackage() {
    return sdfPackage;
  }


  @JsonProperty(JSON_PROPERTY_SDF_PACKAGE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setSdfPackage(SdfPackageEnum sdfPackage) {
    this.sdfPackage = sdfPackage;
  }


  public Metric dataType(String dataType) {
    this.dataType = dataType;
    return this;
  }

   /**
   * The data type for the metric. Make note, mixing data types within a single /fundamentals API is not supported. Each dataType is defined below -   * **date** - date format expressed in YYYY-MM-DD.   * **doubleArray** - A double is a FactSet data type, similar to a float or an integer. A double represents numeric data but provides for a greater amount of decimal precision than the float data type. Double values have up to 15 digits of precision, while float values have up to 7 digits (integers have up to 10 digits).   * **float** - A float value is a real number (i.e., a number that can contain a fractional part/decimals). A float value has a precision up to seven digits and accurately represents numbers whose absolute value is less than 16,277,216 (224). An example metric includes   * **floatArray** - unction will hold data for multiple time-periods, as well as for many companies (i.e., two-dimensional value). The FLOATARRAY function returns data using a vertical orientation (e.g., down a column). The difference between FLOAT and FLOATARRAY is that FLOAT can only go across a row (one-dimension; horizontal orientation; vertical length=1) whereas FLOATARRAY will return data both across a row and down a column (two-dimensions; vertical orientation). With FLOATARRAY, the number of data points across a row will correspond to the number of companies queried; the number of data points down a column will correspond to the length of the time-series.   * **intArray** - An integer is a whole number or zero (i.e., integers do not include decimals). Integers can be positive or negative.   * **string** - A string value is an ASCII character. A string is a sequence of ASCII characters. String value and text value are synonymous. Function will hold data for multiple time-periods, as well as for many companies (i.e., two-dimensional value). The STRING_ARRAY function returns data using a vertical orientation (e.g., down a column)   * **stringArray** - The difference between STRING and STRINGARRAY is that STRING can only go across a row (one-dimension; horizontal orientation; vertical length=1) whereas STRINGARRAY will return data both across a row and down a column (two-dimensions; vertical orientation). With STRINGARRAY, the number of data points across a row will correspond to the number of companies queried; the number of data points down a column will correspond to the length of the time-series. 
   * @return dataType
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "doubleArray", value = "The data type for the metric. Make note, mixing data types within a single /fundamentals API is not supported. Each dataType is defined below -   * **date** - date format expressed in YYYY-MM-DD.   * **doubleArray** - A double is a FactSet data type, similar to a float or an integer. A double represents numeric data but provides for a greater amount of decimal precision than the float data type. Double values have up to 15 digits of precision, while float values have up to 7 digits (integers have up to 10 digits).   * **float** - A float value is a real number (i.e., a number that can contain a fractional part/decimals). A float value has a precision up to seven digits and accurately represents numbers whose absolute value is less than 16,277,216 (224). An example metric includes   * **floatArray** - unction will hold data for multiple time-periods, as well as for many companies (i.e., two-dimensional value). The FLOATARRAY function returns data using a vertical orientation (e.g., down a column). The difference between FLOAT and FLOATARRAY is that FLOAT can only go across a row (one-dimension; horizontal orientation; vertical length=1) whereas FLOATARRAY will return data both across a row and down a column (two-dimensions; vertical orientation). With FLOATARRAY, the number of data points across a row will correspond to the number of companies queried; the number of data points down a column will correspond to the length of the time-series.   * **intArray** - An integer is a whole number or zero (i.e., integers do not include decimals). Integers can be positive or negative.   * **string** - A string value is an ASCII character. A string is a sequence of ASCII characters. String value and text value are synonymous. Function will hold data for multiple time-periods, as well as for many companies (i.e., two-dimensional value). The STRING_ARRAY function returns data using a vertical orientation (e.g., down a column)   * **stringArray** - The difference between STRING and STRINGARRAY is that STRING can only go across a row (one-dimension; horizontal orientation; vertical length=1) whereas STRINGARRAY will return data both across a row and down a column (two-dimensions; vertical orientation). With STRINGARRAY, the number of data points across a row will correspond to the number of companies queried; the number of data points down a column will correspond to the length of the time-series. ")
  @JsonProperty(JSON_PROPERTY_DATA_TYPE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public String getDataType() {
    return dataType;
  }


  @JsonProperty(JSON_PROPERTY_DATA_TYPE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setDataType(String dataType) {
    this.dataType = dataType;
  }


  /**
   * Return true if this metric object is equal to o.
   */
  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    Metric metric = (Metric) o;
    return Objects.equals(this.metric, metric.metric) &&
        Objects.equals(this.name, metric.name) &&
        Objects.equals(this.category, metric.category) &&
        Objects.equals(this.subcategory, metric.subcategory) &&
        Objects.equals(this.oaPageId, metric.oaPageId) &&
        Objects.equals(this.oaurl, metric.oaurl) &&
        Objects.equals(this.factor, metric.factor) &&
        Objects.equals(this.sdfPackage, metric.sdfPackage) &&
        Objects.equals(this.dataType, metric.dataType);
  }

  @Override
  public int hashCode() {
    return Objects.hash(metric, name, category, subcategory, oaPageId, oaurl, factor, sdfPackage, dataType);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class Metric {\n");
    sb.append("    metric: ").append(toIndentedString(metric)).append("\n");
    sb.append("    name: ").append(toIndentedString(name)).append("\n");
    sb.append("    category: ").append(toIndentedString(category)).append("\n");
    sb.append("    subcategory: ").append(toIndentedString(subcategory)).append("\n");
    sb.append("    oaPageId: ").append(toIndentedString(oaPageId)).append("\n");
    sb.append("    oaurl: ").append(toIndentedString(oaurl)).append("\n");
    sb.append("    factor: ").append(toIndentedString(factor)).append("\n");
    sb.append("    sdfPackage: ").append(toIndentedString(sdfPackage)).append("\n");
    sb.append("    dataType: ").append(toIndentedString(dataType)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }

}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy