<?php
/**
 * CashFlowStatement
 *
 * PHP version 5
 *
 * @category Class
 * @package  EquiblesStocks
 * @author   Swagger Codegen team
 * @link     https://github.com/swagger-api/swagger-codegen
 */

/**
 * Stocks
 *
 * <h3>Rate limits</h3>                     Free subscriptions are subject to daily limits. To know how much requests you have left look at the following headers in the response.<br />                     1. <strong>x-ratelimit-limit</strong> - The total number of requests that you are allowed to make in a given period (hour/day)<br />                     2. <strong>x-ratelimit-remaining</strong> - The number of remaining requests that you can perform in the current period.<br />                     3. <strong>x-ratelimit-reset</strong> - The number of seconds until the current period resets.<br />                     <br />                     <br />                     You don't have an API key? <a href=\"https://www.equibles.com/api/pricing\" target=\"_blank\">Get one for free here.</a>
 *
 * OpenAPI spec version: v1
 * Contact: contact@equibles.com
 * Generated by: https://github.com/swagger-api/swagger-codegen.git
 * Swagger Codegen version: 3.0.34
 */
/**
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen
 * Do not edit the class manually.
 */

namespace EquiblesStocks\Models;

use \ArrayAccess;
use \EquiblesStocks\ObjectSerializer;

/**
 * CashFlowStatement Class Doc Comment
 *
 * @category Class
 * @package  EquiblesStocks
 * @author   Swagger Codegen team
 * @link     https://github.com/swagger-api/swagger-codegen
 */
class CashFlowStatement implements ModelInterface, ArrayAccess
{
    const DISCRIMINATOR = null;

    /**
      * The original name of the model.
      *
      * @var string
      */
    protected static $swaggerModelName = 'CashFlowStatement';

    /**
      * Array of property to type mappings. Used for (de)serialization
      *
      * @var string[]
      */
    protected static $swaggerTypes = [
        'operatingCashFlow' => 'int',
'paymentsForOperatingActivities' => 'int',
'proceedsFromOperatingActivities' => 'int',
'changeInOperatingLiabilities' => 'int',
'changeInOperatingAssets' => 'int',
'depreciationDepletionAndAmortization' => 'int',
'capitalExpenditures' => 'int',
'changeInReceivables' => 'int',
'changeInInventory' => 'int',
'profitLoss' => 'int',
'investments' => 'int',
'cashFlowFromInvestment' => 'int',
'cashFlowFromFinancing' => 'int',
'proceedsFromRepaymentsOfShortTermDebt' => 'int',
'paymentsForRepurchaseOfCommonStock' => 'int',
'paymentsForRepurchaseOfEquity' => 'int',
'paymentsForRepurchaseOfPreferredStock' => 'int',
'dividendPayout' => 'int',
'dividendPayoutCommonStock' => 'int',
'dividendPayoutPreferredStock' => 'int',
'proceedsFromIssuanceOfCommonStock' => 'int',
'proceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet' => 'int',
'proceedsFromIssuanceOfPreferredStock' => 'int',
'proceedsFromRepurchaseOfEquity' => 'int',
'proceedsFromSaleOfTreasuryStock' => 'int',
'changeInCashAndCashEquivalents' => 'int',
'changeInExchangeRate' => 'int',
'netIncome' => 'int',
'netBorrowings' => 'int',
'changeInWorkingCapital' => 'int',
'otherNonCashItems' => 'int',
'freeCashFlow' => 'int'    ];

    /**
      * Array of property to format mappings. Used for (de)serialization
      *
      * @var string[]
      */
    protected static $swaggerFormats = [
        'operatingCashFlow' => 'int64',
'paymentsForOperatingActivities' => 'int64',
'proceedsFromOperatingActivities' => 'int64',
'changeInOperatingLiabilities' => 'int64',
'changeInOperatingAssets' => 'int64',
'depreciationDepletionAndAmortization' => 'int64',
'capitalExpenditures' => 'int64',
'changeInReceivables' => 'int64',
'changeInInventory' => 'int64',
'profitLoss' => 'int64',
'investments' => 'int64',
'cashFlowFromInvestment' => 'int64',
'cashFlowFromFinancing' => 'int64',
'proceedsFromRepaymentsOfShortTermDebt' => 'int64',
'paymentsForRepurchaseOfCommonStock' => 'int64',
'paymentsForRepurchaseOfEquity' => 'int64',
'paymentsForRepurchaseOfPreferredStock' => 'int64',
'dividendPayout' => 'int64',
'dividendPayoutCommonStock' => 'int64',
'dividendPayoutPreferredStock' => 'int64',
'proceedsFromIssuanceOfCommonStock' => 'int64',
'proceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet' => 'int64',
'proceedsFromIssuanceOfPreferredStock' => 'int64',
'proceedsFromRepurchaseOfEquity' => 'int64',
'proceedsFromSaleOfTreasuryStock' => 'int64',
'changeInCashAndCashEquivalents' => 'int64',
'changeInExchangeRate' => 'int64',
'netIncome' => 'int64',
'netBorrowings' => 'int64',
'changeInWorkingCapital' => 'int64',
'otherNonCashItems' => 'int64',
'freeCashFlow' => 'int64'    ];

    /**
     * Array of property to type mappings. Used for (de)serialization
     *
     * @return array
     */
    public static function swaggerTypes()
    {
        return self::$swaggerTypes;
    }

    /**
     * Array of property to format mappings. Used for (de)serialization
     *
     * @return array
     */
    public static function swaggerFormats()
    {
        return self::$swaggerFormats;
    }

    /**
     * Array of attributes where the key is the local name,
     * and the value is the original name
     *
     * @var string[]
     */
    protected static $attributeMap = [
        'operatingCashFlow' => 'operatingCashFlow',
'paymentsForOperatingActivities' => 'paymentsForOperatingActivities',
'proceedsFromOperatingActivities' => 'proceedsFromOperatingActivities',
'changeInOperatingLiabilities' => 'changeInOperatingLiabilities',
'changeInOperatingAssets' => 'changeInOperatingAssets',
'depreciationDepletionAndAmortization' => 'depreciationDepletionAndAmortization',
'capitalExpenditures' => 'capitalExpenditures',
'changeInReceivables' => 'changeInReceivables',
'changeInInventory' => 'changeInInventory',
'profitLoss' => 'profitLoss',
'investments' => 'investments',
'cashFlowFromInvestment' => 'cashFlowFromInvestment',
'cashFlowFromFinancing' => 'cashFlowFromFinancing',
'proceedsFromRepaymentsOfShortTermDebt' => 'proceedsFromRepaymentsOfShortTermDebt',
'paymentsForRepurchaseOfCommonStock' => 'paymentsForRepurchaseOfCommonStock',
'paymentsForRepurchaseOfEquity' => 'paymentsForRepurchaseOfEquity',
'paymentsForRepurchaseOfPreferredStock' => 'paymentsForRepurchaseOfPreferredStock',
'dividendPayout' => 'dividendPayout',
'dividendPayoutCommonStock' => 'dividendPayoutCommonStock',
'dividendPayoutPreferredStock' => 'dividendPayoutPreferredStock',
'proceedsFromIssuanceOfCommonStock' => 'proceedsFromIssuanceOfCommonStock',
'proceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet' => 'proceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet',
'proceedsFromIssuanceOfPreferredStock' => 'proceedsFromIssuanceOfPreferredStock',
'proceedsFromRepurchaseOfEquity' => 'proceedsFromRepurchaseOfEquity',
'proceedsFromSaleOfTreasuryStock' => 'proceedsFromSaleOfTreasuryStock',
'changeInCashAndCashEquivalents' => 'changeInCashAndCashEquivalents',
'changeInExchangeRate' => 'changeInExchangeRate',
'netIncome' => 'netIncome',
'netBorrowings' => 'netBorrowings',
'changeInWorkingCapital' => 'changeInWorkingCapital',
'otherNonCashItems' => 'otherNonCashItems',
'freeCashFlow' => 'freeCashFlow'    ];

    /**
     * Array of attributes to setter functions (for deserialization of responses)
     *
     * @var string[]
     */
    protected static $setters = [
        'operatingCashFlow' => 'setOperatingCashFlow',
'paymentsForOperatingActivities' => 'setPaymentsForOperatingActivities',
'proceedsFromOperatingActivities' => 'setProceedsFromOperatingActivities',
'changeInOperatingLiabilities' => 'setChangeInOperatingLiabilities',
'changeInOperatingAssets' => 'setChangeInOperatingAssets',
'depreciationDepletionAndAmortization' => 'setDepreciationDepletionAndAmortization',
'capitalExpenditures' => 'setCapitalExpenditures',
'changeInReceivables' => 'setChangeInReceivables',
'changeInInventory' => 'setChangeInInventory',
'profitLoss' => 'setProfitLoss',
'investments' => 'setInvestments',
'cashFlowFromInvestment' => 'setCashFlowFromInvestment',
'cashFlowFromFinancing' => 'setCashFlowFromFinancing',
'proceedsFromRepaymentsOfShortTermDebt' => 'setProceedsFromRepaymentsOfShortTermDebt',
'paymentsForRepurchaseOfCommonStock' => 'setPaymentsForRepurchaseOfCommonStock',
'paymentsForRepurchaseOfEquity' => 'setPaymentsForRepurchaseOfEquity',
'paymentsForRepurchaseOfPreferredStock' => 'setPaymentsForRepurchaseOfPreferredStock',
'dividendPayout' => 'setDividendPayout',
'dividendPayoutCommonStock' => 'setDividendPayoutCommonStock',
'dividendPayoutPreferredStock' => 'setDividendPayoutPreferredStock',
'proceedsFromIssuanceOfCommonStock' => 'setProceedsFromIssuanceOfCommonStock',
'proceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet' => 'setProceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet',
'proceedsFromIssuanceOfPreferredStock' => 'setProceedsFromIssuanceOfPreferredStock',
'proceedsFromRepurchaseOfEquity' => 'setProceedsFromRepurchaseOfEquity',
'proceedsFromSaleOfTreasuryStock' => 'setProceedsFromSaleOfTreasuryStock',
'changeInCashAndCashEquivalents' => 'setChangeInCashAndCashEquivalents',
'changeInExchangeRate' => 'setChangeInExchangeRate',
'netIncome' => 'setNetIncome',
'netBorrowings' => 'setNetBorrowings',
'changeInWorkingCapital' => 'setChangeInWorkingCapital',
'otherNonCashItems' => 'setOtherNonCashItems',
'freeCashFlow' => 'setFreeCashFlow'    ];

    /**
     * Array of attributes to getter functions (for serialization of requests)
     *
     * @var string[]
     */
    protected static $getters = [
        'operatingCashFlow' => 'getOperatingCashFlow',
'paymentsForOperatingActivities' => 'getPaymentsForOperatingActivities',
'proceedsFromOperatingActivities' => 'getProceedsFromOperatingActivities',
'changeInOperatingLiabilities' => 'getChangeInOperatingLiabilities',
'changeInOperatingAssets' => 'getChangeInOperatingAssets',
'depreciationDepletionAndAmortization' => 'getDepreciationDepletionAndAmortization',
'capitalExpenditures' => 'getCapitalExpenditures',
'changeInReceivables' => 'getChangeInReceivables',
'changeInInventory' => 'getChangeInInventory',
'profitLoss' => 'getProfitLoss',
'investments' => 'getInvestments',
'cashFlowFromInvestment' => 'getCashFlowFromInvestment',
'cashFlowFromFinancing' => 'getCashFlowFromFinancing',
'proceedsFromRepaymentsOfShortTermDebt' => 'getProceedsFromRepaymentsOfShortTermDebt',
'paymentsForRepurchaseOfCommonStock' => 'getPaymentsForRepurchaseOfCommonStock',
'paymentsForRepurchaseOfEquity' => 'getPaymentsForRepurchaseOfEquity',
'paymentsForRepurchaseOfPreferredStock' => 'getPaymentsForRepurchaseOfPreferredStock',
'dividendPayout' => 'getDividendPayout',
'dividendPayoutCommonStock' => 'getDividendPayoutCommonStock',
'dividendPayoutPreferredStock' => 'getDividendPayoutPreferredStock',
'proceedsFromIssuanceOfCommonStock' => 'getProceedsFromIssuanceOfCommonStock',
'proceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet' => 'getProceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet',
'proceedsFromIssuanceOfPreferredStock' => 'getProceedsFromIssuanceOfPreferredStock',
'proceedsFromRepurchaseOfEquity' => 'getProceedsFromRepurchaseOfEquity',
'proceedsFromSaleOfTreasuryStock' => 'getProceedsFromSaleOfTreasuryStock',
'changeInCashAndCashEquivalents' => 'getChangeInCashAndCashEquivalents',
'changeInExchangeRate' => 'getChangeInExchangeRate',
'netIncome' => 'getNetIncome',
'netBorrowings' => 'getNetBorrowings',
'changeInWorkingCapital' => 'getChangeInWorkingCapital',
'otherNonCashItems' => 'getOtherNonCashItems',
'freeCashFlow' => 'getFreeCashFlow'    ];

    /**
     * Array of attributes where the key is the local name,
     * and the value is the original name
     *
     * @return array
     */
    public static function attributeMap()
    {
        return self::$attributeMap;
    }

    /**
     * Array of attributes to setter functions (for deserialization of responses)
     *
     * @return array
     */
    public static function setters()
    {
        return self::$setters;
    }

    /**
     * Array of attributes to getter functions (for serialization of requests)
     *
     * @return array
     */
    public static function getters()
    {
        return self::$getters;
    }

    /**
     * The original name of the model.
     *
     * @return string
     */
    public function getModelName()
    {
        return self::$swaggerModelName;
    }

    

    /**
     * Associative array for storing property values
     *
     * @var mixed[]
     */
    protected $container = [];

    /**
     * Constructor
     *
     * @param mixed[] $data Associated array of property values
     *                      initializing the model
     */
    public function __construct(array $data = null)
    {
        $this->container['operatingCashFlow'] = isset($data['operatingCashFlow']) ? $data['operatingCashFlow'] : null;
        $this->container['paymentsForOperatingActivities'] = isset($data['paymentsForOperatingActivities']) ? $data['paymentsForOperatingActivities'] : null;
        $this->container['proceedsFromOperatingActivities'] = isset($data['proceedsFromOperatingActivities']) ? $data['proceedsFromOperatingActivities'] : null;
        $this->container['changeInOperatingLiabilities'] = isset($data['changeInOperatingLiabilities']) ? $data['changeInOperatingLiabilities'] : null;
        $this->container['changeInOperatingAssets'] = isset($data['changeInOperatingAssets']) ? $data['changeInOperatingAssets'] : null;
        $this->container['depreciationDepletionAndAmortization'] = isset($data['depreciationDepletionAndAmortization']) ? $data['depreciationDepletionAndAmortization'] : null;
        $this->container['capitalExpenditures'] = isset($data['capitalExpenditures']) ? $data['capitalExpenditures'] : null;
        $this->container['changeInReceivables'] = isset($data['changeInReceivables']) ? $data['changeInReceivables'] : null;
        $this->container['changeInInventory'] = isset($data['changeInInventory']) ? $data['changeInInventory'] : null;
        $this->container['profitLoss'] = isset($data['profitLoss']) ? $data['profitLoss'] : null;
        $this->container['investments'] = isset($data['investments']) ? $data['investments'] : null;
        $this->container['cashFlowFromInvestment'] = isset($data['cashFlowFromInvestment']) ? $data['cashFlowFromInvestment'] : null;
        $this->container['cashFlowFromFinancing'] = isset($data['cashFlowFromFinancing']) ? $data['cashFlowFromFinancing'] : null;
        $this->container['proceedsFromRepaymentsOfShortTermDebt'] = isset($data['proceedsFromRepaymentsOfShortTermDebt']) ? $data['proceedsFromRepaymentsOfShortTermDebt'] : null;
        $this->container['paymentsForRepurchaseOfCommonStock'] = isset($data['paymentsForRepurchaseOfCommonStock']) ? $data['paymentsForRepurchaseOfCommonStock'] : null;
        $this->container['paymentsForRepurchaseOfEquity'] = isset($data['paymentsForRepurchaseOfEquity']) ? $data['paymentsForRepurchaseOfEquity'] : null;
        $this->container['paymentsForRepurchaseOfPreferredStock'] = isset($data['paymentsForRepurchaseOfPreferredStock']) ? $data['paymentsForRepurchaseOfPreferredStock'] : null;
        $this->container['dividendPayout'] = isset($data['dividendPayout']) ? $data['dividendPayout'] : null;
        $this->container['dividendPayoutCommonStock'] = isset($data['dividendPayoutCommonStock']) ? $data['dividendPayoutCommonStock'] : null;
        $this->container['dividendPayoutPreferredStock'] = isset($data['dividendPayoutPreferredStock']) ? $data['dividendPayoutPreferredStock'] : null;
        $this->container['proceedsFromIssuanceOfCommonStock'] = isset($data['proceedsFromIssuanceOfCommonStock']) ? $data['proceedsFromIssuanceOfCommonStock'] : null;
        $this->container['proceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet'] = isset($data['proceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet']) ? $data['proceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet'] : null;
        $this->container['proceedsFromIssuanceOfPreferredStock'] = isset($data['proceedsFromIssuanceOfPreferredStock']) ? $data['proceedsFromIssuanceOfPreferredStock'] : null;
        $this->container['proceedsFromRepurchaseOfEquity'] = isset($data['proceedsFromRepurchaseOfEquity']) ? $data['proceedsFromRepurchaseOfEquity'] : null;
        $this->container['proceedsFromSaleOfTreasuryStock'] = isset($data['proceedsFromSaleOfTreasuryStock']) ? $data['proceedsFromSaleOfTreasuryStock'] : null;
        $this->container['changeInCashAndCashEquivalents'] = isset($data['changeInCashAndCashEquivalents']) ? $data['changeInCashAndCashEquivalents'] : null;
        $this->container['changeInExchangeRate'] = isset($data['changeInExchangeRate']) ? $data['changeInExchangeRate'] : null;
        $this->container['netIncome'] = isset($data['netIncome']) ? $data['netIncome'] : null;
        $this->container['netBorrowings'] = isset($data['netBorrowings']) ? $data['netBorrowings'] : null;
        $this->container['changeInWorkingCapital'] = isset($data['changeInWorkingCapital']) ? $data['changeInWorkingCapital'] : null;
        $this->container['otherNonCashItems'] = isset($data['otherNonCashItems']) ? $data['otherNonCashItems'] : null;
        $this->container['freeCashFlow'] = isset($data['freeCashFlow']) ? $data['freeCashFlow'] : null;
    }

    /**
     * Show all the invalid properties with reasons.
     *
     * @return array invalid properties with reasons
     */
    public function listInvalidProperties()
    {
        $invalidProperties = [];

        return $invalidProperties;
    }

    /**
     * Validate all the properties in the model
     * return true if all passed
     *
     * @return bool True if all properties are valid
     */
    public function valid()
    {
        return count($this->listInvalidProperties()) === 0;
    }


    /**
     * Gets operatingCashFlow
     *
     * @return int
     */
    public function getOperatingCashFlow()
    {
        return $this->container['operatingCashFlow'];
    }

    /**
     * Sets operatingCashFlow
     *
     * @param int $operatingCashFlow operatingCashFlow
     *
     * @return $this
     */
    public function setOperatingCashFlow($operatingCashFlow)
    {
        $this->container['operatingCashFlow'] = $operatingCashFlow;

        return $this;
    }

    /**
     * Gets paymentsForOperatingActivities
     *
     * @return int
     */
    public function getPaymentsForOperatingActivities()
    {
        return $this->container['paymentsForOperatingActivities'];
    }

    /**
     * Sets paymentsForOperatingActivities
     *
     * @param int $paymentsForOperatingActivities paymentsForOperatingActivities
     *
     * @return $this
     */
    public function setPaymentsForOperatingActivities($paymentsForOperatingActivities)
    {
        $this->container['paymentsForOperatingActivities'] = $paymentsForOperatingActivities;

        return $this;
    }

    /**
     * Gets proceedsFromOperatingActivities
     *
     * @return int
     */
    public function getProceedsFromOperatingActivities()
    {
        return $this->container['proceedsFromOperatingActivities'];
    }

    /**
     * Sets proceedsFromOperatingActivities
     *
     * @param int $proceedsFromOperatingActivities proceedsFromOperatingActivities
     *
     * @return $this
     */
    public function setProceedsFromOperatingActivities($proceedsFromOperatingActivities)
    {
        $this->container['proceedsFromOperatingActivities'] = $proceedsFromOperatingActivities;

        return $this;
    }

    /**
     * Gets changeInOperatingLiabilities
     *
     * @return int
     */
    public function getChangeInOperatingLiabilities()
    {
        return $this->container['changeInOperatingLiabilities'];
    }

    /**
     * Sets changeInOperatingLiabilities
     *
     * @param int $changeInOperatingLiabilities changeInOperatingLiabilities
     *
     * @return $this
     */
    public function setChangeInOperatingLiabilities($changeInOperatingLiabilities)
    {
        $this->container['changeInOperatingLiabilities'] = $changeInOperatingLiabilities;

        return $this;
    }

    /**
     * Gets changeInOperatingAssets
     *
     * @return int
     */
    public function getChangeInOperatingAssets()
    {
        return $this->container['changeInOperatingAssets'];
    }

    /**
     * Sets changeInOperatingAssets
     *
     * @param int $changeInOperatingAssets changeInOperatingAssets
     *
     * @return $this
     */
    public function setChangeInOperatingAssets($changeInOperatingAssets)
    {
        $this->container['changeInOperatingAssets'] = $changeInOperatingAssets;

        return $this;
    }

    /**
     * Gets depreciationDepletionAndAmortization
     *
     * @return int
     */
    public function getDepreciationDepletionAndAmortization()
    {
        return $this->container['depreciationDepletionAndAmortization'];
    }

    /**
     * Sets depreciationDepletionAndAmortization
     *
     * @param int $depreciationDepletionAndAmortization depreciationDepletionAndAmortization
     *
     * @return $this
     */
    public function setDepreciationDepletionAndAmortization($depreciationDepletionAndAmortization)
    {
        $this->container['depreciationDepletionAndAmortization'] = $depreciationDepletionAndAmortization;

        return $this;
    }

    /**
     * Gets capitalExpenditures
     *
     * @return int
     */
    public function getCapitalExpenditures()
    {
        return $this->container['capitalExpenditures'];
    }

    /**
     * Sets capitalExpenditures
     *
     * @param int $capitalExpenditures capitalExpenditures
     *
     * @return $this
     */
    public function setCapitalExpenditures($capitalExpenditures)
    {
        $this->container['capitalExpenditures'] = $capitalExpenditures;

        return $this;
    }

    /**
     * Gets changeInReceivables
     *
     * @return int
     */
    public function getChangeInReceivables()
    {
        return $this->container['changeInReceivables'];
    }

    /**
     * Sets changeInReceivables
     *
     * @param int $changeInReceivables changeInReceivables
     *
     * @return $this
     */
    public function setChangeInReceivables($changeInReceivables)
    {
        $this->container['changeInReceivables'] = $changeInReceivables;

        return $this;
    }

    /**
     * Gets changeInInventory
     *
     * @return int
     */
    public function getChangeInInventory()
    {
        return $this->container['changeInInventory'];
    }

    /**
     * Sets changeInInventory
     *
     * @param int $changeInInventory changeInInventory
     *
     * @return $this
     */
    public function setChangeInInventory($changeInInventory)
    {
        $this->container['changeInInventory'] = $changeInInventory;

        return $this;
    }

    /**
     * Gets profitLoss
     *
     * @return int
     */
    public function getProfitLoss()
    {
        return $this->container['profitLoss'];
    }

    /**
     * Sets profitLoss
     *
     * @param int $profitLoss profitLoss
     *
     * @return $this
     */
    public function setProfitLoss($profitLoss)
    {
        $this->container['profitLoss'] = $profitLoss;

        return $this;
    }

    /**
     * Gets investments
     *
     * @return int
     */
    public function getInvestments()
    {
        return $this->container['investments'];
    }

    /**
     * Sets investments
     *
     * @param int $investments investments
     *
     * @return $this
     */
    public function setInvestments($investments)
    {
        $this->container['investments'] = $investments;

        return $this;
    }

    /**
     * Gets cashFlowFromInvestment
     *
     * @return int
     */
    public function getCashFlowFromInvestment()
    {
        return $this->container['cashFlowFromInvestment'];
    }

    /**
     * Sets cashFlowFromInvestment
     *
     * @param int $cashFlowFromInvestment cashFlowFromInvestment
     *
     * @return $this
     */
    public function setCashFlowFromInvestment($cashFlowFromInvestment)
    {
        $this->container['cashFlowFromInvestment'] = $cashFlowFromInvestment;

        return $this;
    }

    /**
     * Gets cashFlowFromFinancing
     *
     * @return int
     */
    public function getCashFlowFromFinancing()
    {
        return $this->container['cashFlowFromFinancing'];
    }

    /**
     * Sets cashFlowFromFinancing
     *
     * @param int $cashFlowFromFinancing cashFlowFromFinancing
     *
     * @return $this
     */
    public function setCashFlowFromFinancing($cashFlowFromFinancing)
    {
        $this->container['cashFlowFromFinancing'] = $cashFlowFromFinancing;

        return $this;
    }

    /**
     * Gets proceedsFromRepaymentsOfShortTermDebt
     *
     * @return int
     */
    public function getProceedsFromRepaymentsOfShortTermDebt()
    {
        return $this->container['proceedsFromRepaymentsOfShortTermDebt'];
    }

    /**
     * Sets proceedsFromRepaymentsOfShortTermDebt
     *
     * @param int $proceedsFromRepaymentsOfShortTermDebt proceedsFromRepaymentsOfShortTermDebt
     *
     * @return $this
     */
    public function setProceedsFromRepaymentsOfShortTermDebt($proceedsFromRepaymentsOfShortTermDebt)
    {
        $this->container['proceedsFromRepaymentsOfShortTermDebt'] = $proceedsFromRepaymentsOfShortTermDebt;

        return $this;
    }

    /**
     * Gets paymentsForRepurchaseOfCommonStock
     *
     * @return int
     */
    public function getPaymentsForRepurchaseOfCommonStock()
    {
        return $this->container['paymentsForRepurchaseOfCommonStock'];
    }

    /**
     * Sets paymentsForRepurchaseOfCommonStock
     *
     * @param int $paymentsForRepurchaseOfCommonStock paymentsForRepurchaseOfCommonStock
     *
     * @return $this
     */
    public function setPaymentsForRepurchaseOfCommonStock($paymentsForRepurchaseOfCommonStock)
    {
        $this->container['paymentsForRepurchaseOfCommonStock'] = $paymentsForRepurchaseOfCommonStock;

        return $this;
    }

    /**
     * Gets paymentsForRepurchaseOfEquity
     *
     * @return int
     */
    public function getPaymentsForRepurchaseOfEquity()
    {
        return $this->container['paymentsForRepurchaseOfEquity'];
    }

    /**
     * Sets paymentsForRepurchaseOfEquity
     *
     * @param int $paymentsForRepurchaseOfEquity paymentsForRepurchaseOfEquity
     *
     * @return $this
     */
    public function setPaymentsForRepurchaseOfEquity($paymentsForRepurchaseOfEquity)
    {
        $this->container['paymentsForRepurchaseOfEquity'] = $paymentsForRepurchaseOfEquity;

        return $this;
    }

    /**
     * Gets paymentsForRepurchaseOfPreferredStock
     *
     * @return int
     */
    public function getPaymentsForRepurchaseOfPreferredStock()
    {
        return $this->container['paymentsForRepurchaseOfPreferredStock'];
    }

    /**
     * Sets paymentsForRepurchaseOfPreferredStock
     *
     * @param int $paymentsForRepurchaseOfPreferredStock paymentsForRepurchaseOfPreferredStock
     *
     * @return $this
     */
    public function setPaymentsForRepurchaseOfPreferredStock($paymentsForRepurchaseOfPreferredStock)
    {
        $this->container['paymentsForRepurchaseOfPreferredStock'] = $paymentsForRepurchaseOfPreferredStock;

        return $this;
    }

    /**
     * Gets dividendPayout
     *
     * @return int
     */
    public function getDividendPayout()
    {
        return $this->container['dividendPayout'];
    }

    /**
     * Sets dividendPayout
     *
     * @param int $dividendPayout dividendPayout
     *
     * @return $this
     */
    public function setDividendPayout($dividendPayout)
    {
        $this->container['dividendPayout'] = $dividendPayout;

        return $this;
    }

    /**
     * Gets dividendPayoutCommonStock
     *
     * @return int
     */
    public function getDividendPayoutCommonStock()
    {
        return $this->container['dividendPayoutCommonStock'];
    }

    /**
     * Sets dividendPayoutCommonStock
     *
     * @param int $dividendPayoutCommonStock dividendPayoutCommonStock
     *
     * @return $this
     */
    public function setDividendPayoutCommonStock($dividendPayoutCommonStock)
    {
        $this->container['dividendPayoutCommonStock'] = $dividendPayoutCommonStock;

        return $this;
    }

    /**
     * Gets dividendPayoutPreferredStock
     *
     * @return int
     */
    public function getDividendPayoutPreferredStock()
    {
        return $this->container['dividendPayoutPreferredStock'];
    }

    /**
     * Sets dividendPayoutPreferredStock
     *
     * @param int $dividendPayoutPreferredStock dividendPayoutPreferredStock
     *
     * @return $this
     */
    public function setDividendPayoutPreferredStock($dividendPayoutPreferredStock)
    {
        $this->container['dividendPayoutPreferredStock'] = $dividendPayoutPreferredStock;

        return $this;
    }

    /**
     * Gets proceedsFromIssuanceOfCommonStock
     *
     * @return int
     */
    public function getProceedsFromIssuanceOfCommonStock()
    {
        return $this->container['proceedsFromIssuanceOfCommonStock'];
    }

    /**
     * Sets proceedsFromIssuanceOfCommonStock
     *
     * @param int $proceedsFromIssuanceOfCommonStock proceedsFromIssuanceOfCommonStock
     *
     * @return $this
     */
    public function setProceedsFromIssuanceOfCommonStock($proceedsFromIssuanceOfCommonStock)
    {
        $this->container['proceedsFromIssuanceOfCommonStock'] = $proceedsFromIssuanceOfCommonStock;

        return $this;
    }

    /**
     * Gets proceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet
     *
     * @return int
     */
    public function getProceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet()
    {
        return $this->container['proceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet'];
    }

    /**
     * Sets proceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet
     *
     * @param int $proceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet proceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet
     *
     * @return $this
     */
    public function setProceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet($proceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet)
    {
        $this->container['proceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet'] = $proceedsFromIssuanceOfLongTermDebtAndCapitalSecuritiesNet;

        return $this;
    }

    /**
     * Gets proceedsFromIssuanceOfPreferredStock
     *
     * @return int
     */
    public function getProceedsFromIssuanceOfPreferredStock()
    {
        return $this->container['proceedsFromIssuanceOfPreferredStock'];
    }

    /**
     * Sets proceedsFromIssuanceOfPreferredStock
     *
     * @param int $proceedsFromIssuanceOfPreferredStock proceedsFromIssuanceOfPreferredStock
     *
     * @return $this
     */
    public function setProceedsFromIssuanceOfPreferredStock($proceedsFromIssuanceOfPreferredStock)
    {
        $this->container['proceedsFromIssuanceOfPreferredStock'] = $proceedsFromIssuanceOfPreferredStock;

        return $this;
    }

    /**
     * Gets proceedsFromRepurchaseOfEquity
     *
     * @return int
     */
    public function getProceedsFromRepurchaseOfEquity()
    {
        return $this->container['proceedsFromRepurchaseOfEquity'];
    }

    /**
     * Sets proceedsFromRepurchaseOfEquity
     *
     * @param int $proceedsFromRepurchaseOfEquity proceedsFromRepurchaseOfEquity
     *
     * @return $this
     */
    public function setProceedsFromRepurchaseOfEquity($proceedsFromRepurchaseOfEquity)
    {
        $this->container['proceedsFromRepurchaseOfEquity'] = $proceedsFromRepurchaseOfEquity;

        return $this;
    }

    /**
     * Gets proceedsFromSaleOfTreasuryStock
     *
     * @return int
     */
    public function getProceedsFromSaleOfTreasuryStock()
    {
        return $this->container['proceedsFromSaleOfTreasuryStock'];
    }

    /**
     * Sets proceedsFromSaleOfTreasuryStock
     *
     * @param int $proceedsFromSaleOfTreasuryStock proceedsFromSaleOfTreasuryStock
     *
     * @return $this
     */
    public function setProceedsFromSaleOfTreasuryStock($proceedsFromSaleOfTreasuryStock)
    {
        $this->container['proceedsFromSaleOfTreasuryStock'] = $proceedsFromSaleOfTreasuryStock;

        return $this;
    }

    /**
     * Gets changeInCashAndCashEquivalents
     *
     * @return int
     */
    public function getChangeInCashAndCashEquivalents()
    {
        return $this->container['changeInCashAndCashEquivalents'];
    }

    /**
     * Sets changeInCashAndCashEquivalents
     *
     * @param int $changeInCashAndCashEquivalents changeInCashAndCashEquivalents
     *
     * @return $this
     */
    public function setChangeInCashAndCashEquivalents($changeInCashAndCashEquivalents)
    {
        $this->container['changeInCashAndCashEquivalents'] = $changeInCashAndCashEquivalents;

        return $this;
    }

    /**
     * Gets changeInExchangeRate
     *
     * @return int
     */
    public function getChangeInExchangeRate()
    {
        return $this->container['changeInExchangeRate'];
    }

    /**
     * Sets changeInExchangeRate
     *
     * @param int $changeInExchangeRate changeInExchangeRate
     *
     * @return $this
     */
    public function setChangeInExchangeRate($changeInExchangeRate)
    {
        $this->container['changeInExchangeRate'] = $changeInExchangeRate;

        return $this;
    }

    /**
     * Gets netIncome
     *
     * @return int
     */
    public function getNetIncome()
    {
        return $this->container['netIncome'];
    }

    /**
     * Sets netIncome
     *
     * @param int $netIncome netIncome
     *
     * @return $this
     */
    public function setNetIncome($netIncome)
    {
        $this->container['netIncome'] = $netIncome;

        return $this;
    }

    /**
     * Gets netBorrowings
     *
     * @return int
     */
    public function getNetBorrowings()
    {
        return $this->container['netBorrowings'];
    }

    /**
     * Sets netBorrowings
     *
     * @param int $netBorrowings netBorrowings
     *
     * @return $this
     */
    public function setNetBorrowings($netBorrowings)
    {
        $this->container['netBorrowings'] = $netBorrowings;

        return $this;
    }

    /**
     * Gets changeInWorkingCapital
     *
     * @return int
     */
    public function getChangeInWorkingCapital()
    {
        return $this->container['changeInWorkingCapital'];
    }

    /**
     * Sets changeInWorkingCapital
     *
     * @param int $changeInWorkingCapital changeInWorkingCapital
     *
     * @return $this
     */
    public function setChangeInWorkingCapital($changeInWorkingCapital)
    {
        $this->container['changeInWorkingCapital'] = $changeInWorkingCapital;

        return $this;
    }

    /**
     * Gets otherNonCashItems
     *
     * @return int
     */
    public function getOtherNonCashItems()
    {
        return $this->container['otherNonCashItems'];
    }

    /**
     * Sets otherNonCashItems
     *
     * @param int $otherNonCashItems otherNonCashItems
     *
     * @return $this
     */
    public function setOtherNonCashItems($otherNonCashItems)
    {
        $this->container['otherNonCashItems'] = $otherNonCashItems;

        return $this;
    }

    /**
     * Gets freeCashFlow
     *
     * @return int
     */
    public function getFreeCashFlow()
    {
        return $this->container['freeCashFlow'];
    }

    /**
     * Sets freeCashFlow
     *
     * @param int $freeCashFlow freeCashFlow
     *
     * @return $this
     */
    public function setFreeCashFlow($freeCashFlow)
    {
        $this->container['freeCashFlow'] = $freeCashFlow;

        return $this;
    }
    /**
     * Returns true if offset exists. False otherwise.
     *
     * @param integer $offset Offset
     *
     * @return boolean
     */
    public function offsetExists($offset)
    {
        return isset($this->container[$offset]);
    }

    /**
     * Gets offset.
     *
     * @param integer $offset Offset
     *
     * @return mixed
     */
    public function offsetGet($offset)
    {
        return isset($this->container[$offset]) ? $this->container[$offset] : null;
    }

    /**
     * Sets value based on offset.
     *
     * @param integer $offset Offset
     * @param mixed   $value  Value to be set
     *
     * @return void
     */
    public function offsetSet($offset, $value)
    {
        if (is_null($offset)) {
            $this->container[] = $value;
        } else {
            $this->container[$offset] = $value;
        }
    }

    /**
     * Unsets offset.
     *
     * @param integer $offset Offset
     *
     * @return void
     */
    public function offsetUnset($offset)
    {
        unset($this->container[$offset]);
    }

    /**
     * Gets the string presentation of the object
     *
     * @return string
     */
    public function __toString()
    {
        if (defined('JSON_PRETTY_PRINT')) { // use JSON pretty print
            return json_encode(
                ObjectSerializer::sanitizeForSerialization($this),
                JSON_PRETTY_PRINT
            );
        }

        return json_encode(ObjectSerializer::sanitizeForSerialization($this));
    }
}
