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

com.factset.sdk.FactSetFundamentals.models.Fundamental 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 org.threeten.bp.LocalDate;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.factset.sdk.FactSetFundamentals.JSON;


/**
 * Fundamental
 */
@JsonPropertyOrder({
  Fundamental.JSON_PROPERTY_REQUEST_ID,
  Fundamental.JSON_PROPERTY_FSYM_ID,
  Fundamental.JSON_PROPERTY_METRIC,
  Fundamental.JSON_PROPERTY_PERIODICITY,
  Fundamental.JSON_PROPERTY_FISCAL_PERIOD,
  Fundamental.JSON_PROPERTY_FISCAL_YEAR,
  Fundamental.JSON_PROPERTY_FISCAL_PERIOD_LENGTH,
  Fundamental.JSON_PROPERTY_FISCAL_END_DATE,
  Fundamental.JSON_PROPERTY_REPORT_DATE,
  Fundamental.JSON_PROPERTY_EPS_REPORT_DATE,
  Fundamental.JSON_PROPERTY_UPDATE_TYPE,
  Fundamental.JSON_PROPERTY_UPDATE_STATUS,
  Fundamental.JSON_PROPERTY_CURRENCY,
  Fundamental.JSON_PROPERTY_VALUE
})
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
public class Fundamental implements Serializable {
  private static final long serialVersionUID = 1L;

  public static final String JSON_PROPERTY_REQUEST_ID = "requestId";
  private String requestId;

  public static final String JSON_PROPERTY_FSYM_ID = "fsymId";
  private String fsymId;

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

  /**
   * Periodicity or frequency of the fiscal periods, where ANN = Annual Original, ANN_R = Annual Latest, QTR = Quarterly Original, QTR_R = Quarterly Latest, SEMI = Semi-Annual, LTM = Last Twelve Months, LTMSG = Last Twelve Months Global [OA17959](https://my.apps.factset.com/oa/pages/17959) and YTD = Year-to-date.
   */
  public enum PeriodicityEnum {
    ANN("ANN"),
    
    ANN_R("ANN_R"),
    
    QTR("QTR"),
    
    QTR_R("QTR_R"),
    
    SEMI("SEMI"),
    
    CAL("CAL"),
    
    LTM("LTM"),
    
    LTMSG("LTMSG"),
    
    YTD("YTD");

    private String value;

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

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

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

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

  public static final String JSON_PROPERTY_PERIODICITY = "periodicity";
  private PeriodicityEnum periodicity;

  public static final String JSON_PROPERTY_FISCAL_PERIOD = "fiscalPeriod";
  private Integer fiscalPeriod;

  public static final String JSON_PROPERTY_FISCAL_YEAR = "fiscalYear";
  private Integer fiscalYear;

  public static final String JSON_PROPERTY_FISCAL_PERIOD_LENGTH = "fiscalPeriodLength";
  private Integer fiscalPeriodLength;

  public static final String JSON_PROPERTY_FISCAL_END_DATE = "fiscalEndDate";
  private LocalDate fiscalEndDate;

  public static final String JSON_PROPERTY_REPORT_DATE = "reportDate";
  private LocalDate reportDate;

  public static final String JSON_PROPERTY_EPS_REPORT_DATE = "epsReportDate";
  private LocalDate epsReportDate;

  public static final String JSON_PROPERTY_UPDATE_TYPE = "updateType";
  private Integer updateType;

  public static final String JSON_PROPERTY_UPDATE_STATUS = "updateStatus";
  private String updateStatus;

  public static final String JSON_PROPERTY_CURRENCY = "currency";
  private String currency;

  public static final String JSON_PROPERTY_VALUE = "value";
  private Object value;


  public Fundamental requestId(String requestId) {
    this.requestId = requestId;
    return this;
  }

   /**
   * Identifier that was used for the request.
   * @return requestId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "IBM-US", value = "Identifier that was used for the request.")
  @JsonProperty(JSON_PROPERTY_REQUEST_ID)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public String getRequestId() {
    return requestId;
  }


  @JsonProperty(JSON_PROPERTY_REQUEST_ID)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setRequestId(String requestId) {
    this.requestId = requestId;
  }


  public Fundamental fsymId(String fsymId) {
    this.fsymId = fsymId;
    return this;
  }

   /**
   * FactSet Regional Security Identifier. Six alpha-numeric characters, excluding vowels, with an -R suffix (XXXXXX-R). Identifies the security's best regional security data series per currency. For equities, all primary listings per region and currency are allocated a regional-level permanent identifier. The regional-level permanent identifier will be available once a SEDOL representing the region/currency has been allocated and the identifiers are on FactSet.
   * @return fsymId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "SJY281-R", value = "FactSet Regional Security Identifier. Six alpha-numeric characters, excluding vowels, with an -R suffix (XXXXXX-R). Identifies the security's best regional security data series per currency. For equities, all primary listings per region and currency are allocated a regional-level permanent identifier. The regional-level permanent identifier will be available once a SEDOL representing the region/currency has been allocated and the identifiers are on FactSet.")
  @JsonProperty(JSON_PROPERTY_FSYM_ID)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public String getFsymId() {
    return fsymId;
  }


  @JsonProperty(JSON_PROPERTY_FSYM_ID)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setFsymId(String fsymId) {
    this.fsymId = fsymId;
  }


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

   /**
   * The requested `metric` input, representing the Fundamental Data Item. For a definition of the item please use the /fundamentals/v#/metrics endpoint.
   * @return metric
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "FF_SALES", value = "The requested `metric` input, representing the Fundamental Data Item. For a definition of the item please use the /fundamentals/v#/metrics 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 Fundamental periodicity(PeriodicityEnum periodicity) {
    this.periodicity = periodicity;
    return this;
  }

   /**
   * Periodicity or frequency of the fiscal periods, where ANN = Annual Original, ANN_R = Annual Latest, QTR = Quarterly Original, QTR_R = Quarterly Latest, SEMI = Semi-Annual, LTM = Last Twelve Months, LTMSG = Last Twelve Months Global [OA17959](https://my.apps.factset.com/oa/pages/17959) and YTD = Year-to-date.
   * @return periodicity
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "QTR", value = "Periodicity or frequency of the fiscal periods, where ANN = Annual Original, ANN_R = Annual Latest, QTR = Quarterly Original, QTR_R = Quarterly Latest, SEMI = Semi-Annual, LTM = Last Twelve Months, LTMSG = Last Twelve Months Global [OA17959](https://my.apps.factset.com/oa/pages/17959) and YTD = Year-to-date.")
  @JsonProperty(JSON_PROPERTY_PERIODICITY)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public PeriodicityEnum getPeriodicity() {
    return periodicity;
  }


  @JsonProperty(JSON_PROPERTY_PERIODICITY)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setPeriodicity(PeriodicityEnum periodicity) {
    this.periodicity = periodicity;
  }


  public Fundamental fiscalPeriod(Integer fiscalPeriod) {
    this.fiscalPeriod = fiscalPeriod;
    return this;
  }

   /**
   * Fiscal Period indicator. Returns an integer representing the fiscal period for the requested item and periodicity. QUARTERLY CODE: 1-Fist Quarter; 2-Second Quarter; 3-Third Quarter; 4-Fourth Quarter. SEMI-CODE: 1-First Semi-annual Period; 2-Second Semi-annual Period.
   * @return fiscalPeriod
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "4", value = "Fiscal Period indicator. Returns an integer representing the fiscal period for the requested item and periodicity. QUARTERLY CODE: 1-Fist Quarter; 2-Second Quarter; 3-Third Quarter; 4-Fourth Quarter. SEMI-CODE: 1-First Semi-annual Period; 2-Second Semi-annual Period.")
  @JsonProperty(JSON_PROPERTY_FISCAL_PERIOD)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public Integer getFiscalPeriod() {
    return fiscalPeriod;
  }


  @JsonProperty(JSON_PROPERTY_FISCAL_PERIOD)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setFiscalPeriod(Integer fiscalPeriod) {
    this.fiscalPeriod = fiscalPeriod;
  }


  public Fundamental fiscalYear(Integer fiscalYear) {
    this.fiscalYear = fiscalYear;
    return this;
  }

   /**
   * Fiscal year of the reported period in YYYY format.
   * @return fiscalYear
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "2018", value = "Fiscal year of the reported period in YYYY format.")
  @JsonProperty(JSON_PROPERTY_FISCAL_YEAR)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public Integer getFiscalYear() {
    return fiscalYear;
  }


  @JsonProperty(JSON_PROPERTY_FISCAL_YEAR)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setFiscalYear(Integer fiscalYear) {
    this.fiscalYear = fiscalYear;
  }


  public Fundamental fiscalPeriodLength(Integer fiscalPeriodLength) {
    this.fiscalPeriodLength = fiscalPeriodLength;
    return this;
  }

   /**
   * Length of fiscal period in days.
   * @return fiscalPeriodLength
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "91", value = "Length of fiscal period in days.")
  @JsonProperty(JSON_PROPERTY_FISCAL_PERIOD_LENGTH)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public Integer getFiscalPeriodLength() {
    return fiscalPeriodLength;
  }


  @JsonProperty(JSON_PROPERTY_FISCAL_PERIOD_LENGTH)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setFiscalPeriodLength(Integer fiscalPeriodLength) {
    this.fiscalPeriodLength = fiscalPeriodLength;
  }


  public Fundamental fiscalEndDate(LocalDate fiscalEndDate) {
    this.fiscalEndDate = fiscalEndDate;
    return this;
  }

   /**
   * The normalized data the fiscal period ended.
   * @return fiscalEndDate
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "Sun Dec 31 00:00:00 UTC 2017", value = "The normalized data the fiscal period ended.")
  @JsonProperty(JSON_PROPERTY_FISCAL_END_DATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public LocalDate getFiscalEndDate() {
    return fiscalEndDate;
  }


  @JsonProperty(JSON_PROPERTY_FISCAL_END_DATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setFiscalEndDate(LocalDate fiscalEndDate) {
    this.fiscalEndDate = fiscalEndDate;
  }


  public Fundamental reportDate(LocalDate reportDate) {
    this.reportDate = reportDate;
    return this;
  }

   /**
   * The date the reported fiscal period actually ended.
   * @return reportDate
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "Sat Dec 30 00:00:00 UTC 2017", value = "The date the reported fiscal period actually ended.")
  @JsonProperty(JSON_PROPERTY_REPORT_DATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public LocalDate getReportDate() {
    return reportDate;
  }


  @JsonProperty(JSON_PROPERTY_REPORT_DATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setReportDate(LocalDate reportDate) {
    this.reportDate = reportDate;
  }


  public Fundamental epsReportDate(LocalDate epsReportDate) {
    this.epsReportDate = epsReportDate;
    return this;
  }

   /**
   * The date the EPS was reported for the requested periodicity. In YYYY-MM-DD format. Unavailable data returned as 0001-01-01.
   * @return epsReportDate
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "Sat Feb 24 00:00:00 UTC 2018", value = "The date the EPS was reported for the requested periodicity. In YYYY-MM-DD format. Unavailable data returned as 0001-01-01.")
  @JsonProperty(JSON_PROPERTY_EPS_REPORT_DATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public LocalDate getEpsReportDate() {
    return epsReportDate;
  }


  @JsonProperty(JSON_PROPERTY_EPS_REPORT_DATE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setEpsReportDate(LocalDate epsReportDate) {
    this.epsReportDate = epsReportDate;
  }


  public Fundamental updateType(Integer updateType) {
    this.updateType = updateType;
    return this;
  }

   /**
   * The update type, where: 1 = Preliminary; 2 = FAST; 3 = Final. For more details, visit [Online Assistant Page #D13094](https://oa.apps.factset.com/pages/D13094).
   * @return updateType
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "1", value = "The update type, where: 1 = Preliminary; 2 = FAST; 3 = Final. For more details, visit [Online Assistant Page #D13094](https://oa.apps.factset.com/pages/D13094).")
  @JsonProperty(JSON_PROPERTY_UPDATE_TYPE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public Integer getUpdateType() {
    return updateType;
  }


  @JsonProperty(JSON_PROPERTY_UPDATE_TYPE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setUpdateType(Integer updateType) {
    this.updateType = updateType;
  }


  public Fundamental updateStatus(String updateStatus) {
    this.updateStatus = updateStatus;
    return this;
  }

   /**
   * Update Status Flag: P = Preliminary - The period is updated from a report that usually contains limited or only key information., F = Final - The period is updated from a report where detailed information are available in financial statements including the notes to the line items.
   * @return updateStatus
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "P", value = "Update Status Flag: P = Preliminary - The period is updated from a report that usually contains limited or only key information., F = Final - The period is updated from a report where detailed information are available in financial statements including the notes to the line items.")
  @JsonProperty(JSON_PROPERTY_UPDATE_STATUS)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public String getUpdateStatus() {
    return updateStatus;
  }


  @JsonProperty(JSON_PROPERTY_UPDATE_STATUS)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setUpdateStatus(String updateStatus) {
    this.updateStatus = updateStatus;
  }


  public Fundamental currency(String currency) {
    this.currency = currency;
    return this;
  }

   /**
   * Currency code for the data. For a list of currency ISO codes, visit [Online Assistant Page #1470](https://oa.apps.factset.com/pages/1470).
   * @return currency
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "USD", value = "Currency code for the data. For a list of currency ISO codes, visit [Online Assistant Page #1470](https://oa.apps.factset.com/pages/1470).")
  @JsonProperty(JSON_PROPERTY_CURRENCY)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public String getCurrency() {
    return currency;
  }


  @JsonProperty(JSON_PROPERTY_CURRENCY)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setCurrency(String currency) {
    this.currency = currency;
  }


  public Fundamental value(Object value) {
    this.value = value;
    return this;
  }

   /**
   * Value of the data metric requested. Note that the type of value is 'object', and depending on the data metric requested, the value could be an object representation of a string or double. 
   * @return value
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "12375", value = "Value of the data metric requested. Note that the type of value is 'object', and depending on the data metric requested, the value could be an object representation of a string or double. ")
  @JsonProperty(JSON_PROPERTY_VALUE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

  public Object getValue() {
    return value;
  }


  @JsonProperty(JSON_PROPERTY_VALUE)
  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
  public void setValue(Object value) {
    this.value = value;
  }


  /**
   * Return true if this fundamental object is equal to o.
   */
  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    Fundamental fundamental = (Fundamental) o;
    return Objects.equals(this.requestId, fundamental.requestId) &&
        Objects.equals(this.fsymId, fundamental.fsymId) &&
        Objects.equals(this.metric, fundamental.metric) &&
        Objects.equals(this.periodicity, fundamental.periodicity) &&
        Objects.equals(this.fiscalPeriod, fundamental.fiscalPeriod) &&
        Objects.equals(this.fiscalYear, fundamental.fiscalYear) &&
        Objects.equals(this.fiscalPeriodLength, fundamental.fiscalPeriodLength) &&
        Objects.equals(this.fiscalEndDate, fundamental.fiscalEndDate) &&
        Objects.equals(this.reportDate, fundamental.reportDate) &&
        Objects.equals(this.epsReportDate, fundamental.epsReportDate) &&
        Objects.equals(this.updateType, fundamental.updateType) &&
        Objects.equals(this.updateStatus, fundamental.updateStatus) &&
        Objects.equals(this.currency, fundamental.currency) &&
        Objects.equals(this.value, fundamental.value);
  }

  @Override
  public int hashCode() {
    return Objects.hash(requestId, fsymId, metric, periodicity, fiscalPeriod, fiscalYear, fiscalPeriodLength, fiscalEndDate, reportDate, epsReportDate, updateType, updateStatus, currency, value);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class Fundamental {\n");
    sb.append("    requestId: ").append(toIndentedString(requestId)).append("\n");
    sb.append("    fsymId: ").append(toIndentedString(fsymId)).append("\n");
    sb.append("    metric: ").append(toIndentedString(metric)).append("\n");
    sb.append("    periodicity: ").append(toIndentedString(periodicity)).append("\n");
    sb.append("    fiscalPeriod: ").append(toIndentedString(fiscalPeriod)).append("\n");
    sb.append("    fiscalYear: ").append(toIndentedString(fiscalYear)).append("\n");
    sb.append("    fiscalPeriodLength: ").append(toIndentedString(fiscalPeriodLength)).append("\n");
    sb.append("    fiscalEndDate: ").append(toIndentedString(fiscalEndDate)).append("\n");
    sb.append("    reportDate: ").append(toIndentedString(reportDate)).append("\n");
    sb.append("    epsReportDate: ").append(toIndentedString(epsReportDate)).append("\n");
    sb.append("    updateType: ").append(toIndentedString(updateType)).append("\n");
    sb.append("    updateStatus: ").append(toIndentedString(updateStatus)).append("\n");
    sb.append("    currency: ").append(toIndentedString(currency)).append("\n");
    sb.append("    value: ").append(toIndentedString(value)).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