Neomerx\JsonApi\Encoder\Parser\Parser::analyzeData PHP Method

analyzeData() protected method

protected analyzeData ( array | null | object $data ) : array
$data array | null | object
return array
    protected function analyzeData($data)
    {
        $isCollection = true;
        $isEmpty = true;
        $traversableData = null;
        $isOk = is_array($data) === true || is_object($data) === true || $data === null;
        $isOk ?: Exceptions::throwInvalidArgument('data', $data);
        if (is_array($data) === true) {
            /** @var array $data */
            $isEmpty = empty($data);
            $traversableData = $data;
        } elseif ($data instanceof Iterator && ($iterator = $data) !== null || $data instanceof IteratorAggregate && ($iterator = $data->getIterator()) !== null) {
            /** @var Iterator $iterator */
            $iterator->rewind();
            $isEmpty = $iterator->valid() === false;
            if ($isEmpty === false) {
                $traversableData = $data;
            } else {
                $traversableData = [];
            }
        } elseif (is_object($data) === true) {
            /** @var object $data */
            $isEmpty = $data === null;
            $isCollection = false;
            $traversableData = [$data];
        } elseif ($data === null) {
            $isCollection = false;
            $isEmpty = true;
        }
        return [$isEmpty, $isCollection, $traversableData];
    }