public function convertObject(array $data = null)
    {
        if (empty($data)) {
            return null;
        }

        $object = new ObjectData();
        $acl = $this->convertAcl(
            $data[JSONConstants::JSON_OBJECT_ACL] ?? [],
            (boolean) ($data[JSONConstants::JSON_OBJECT_EXACT_ACL] ?? false)
        );
        if ($acl !== null) {
            $object->setAcl($acl);
        }

        $allowableActions = $this->convertAllowableActions($data[JSONConstants::JSON_OBJECT_ALLOWABLE_ACTIONS] ?? []);
        if ($allowableActions !== null) {
            $object->setAllowableActions($allowableActions);
        }

        if (isset($data[JSONConstants::JSON_OBJECT_CHANGE_EVENT_INFO])
            && is_array($data[JSONConstants::JSON_OBJECT_CHANGE_EVENT_INFO])
        ) {
            $changeEventInfoData = $data[JSONConstants::JSON_OBJECT_CHANGE_EVENT_INFO];
            $changeEventInfo = new ChangeEventInfo();
            $changeEventInfo->setChangeTime(
                $this->convertDateTimeValue($changeEventInfoData[JSONConstants::JSON_CHANGE_EVENT_TIME])
            );
            $changeEventInfo->setChangeType(
                ChangeType::cast($changeEventInfoData[JSONConstants::JSON_CHANGE_EVENT_TYPE])
            );

            $changeEventInfo->setExtensions(
                $this->convertExtension($changeEventInfoData, JSONConstants::getChangeEventKeys())
            );

            $object->setChangeEventInfo($changeEventInfo);
        }

        $object->setIsExactAcl((boolean) ($data[JSONConstants::JSON_OBJECT_EXACT_ACL] ?? false));
        $object->setPolicyIds($this->convertPolicyIdList($data[JSONConstants::JSON_OBJECT_POLICY_IDS] ?? null));

        /**
         * A client MAY add the query parameter succinct (HTTP GET) or the control succinct (HTTP POST) with the
         * value <code>true</code> to a request. If this is set, the repository MUST return properties in a succinct
         * format. That is, whenever the repository renders an object or a query result, it MUST populate the
         * succinctProperties value and MUST NOT populate the properties value.
         *
         * @see http://docs.oasis-open.org/cmis/CMIS/v1.1/os/CMIS-v1.1-os.html#x1-552027r554
         */
        if (isset($data[JSONConstants::JSON_OBJECT_SUCCINCT_PROPERTIES])) {
            $properties = $this->convertSuccinctProperties(
                $data[JSONConstants::JSON_OBJECT_SUCCINCT_PROPERTIES] ?? [],
                (array) ($data[JSONConstants::JSON_OBJECT_PROPERTIES_EXTENSION] ?? [])
            );
        } else {
            $properties = $this->convertProperties(
                $data[JSONConstants::JSON_OBJECT_PROPERTIES] ?? [],
                (array) ($data[JSONConstants::JSON_OBJECT_PROPERTIES_EXTENSION] ?? [])
            );
        }

        $object->setProperties($properties ?? []);
        $object->setRelationships($this->convertObjects($data[JSONConstants::JSON_OBJECT_RELATIONSHIPS] ?? null));
        $object->setRenditions($this->convertRenditions($data[JSONConstants::JSON_OBJECT_RENDITIONS] ?? []));
        $object->setExtensions($this->convertExtension($data, JSONConstants::getObjectKeys()));

        return $object;
    }
public function convertObject(array $data = null)
    {
        if (empty($data)) {
            return null;
        }

        $object = new ObjectData();
        $acl = $this->convertAcl(
            $data[JSONConstants::JSON_OBJECT_ACL] ?? [],
            (boolean) ($data[JSONConstants::JSON_OBJECT_EXACT_ACL] ?? false)
        );
        if ($acl !== null) {
            $object->setAcl($acl);
        }

        $allowableActions = $this->convertAllowableActions($data[JSONConstants::JSON_OBJECT_ALLOWABLE_ACTIONS] ?? []);
        if ($allowableActions !== null) {
            $object->setAllowableActions($allowableActions);
        }

        if (isset($data[JSONConstants::JSON_OBJECT_CHANGE_EVENT_INFO])
            && is_array($data[JSONConstants::JSON_OBJECT_CHANGE_EVENT_INFO])
        ) {
            $changeEventInfoData = $data[JSONConstants::JSON_OBJECT_CHANGE_EVENT_INFO];
            $changeEventInfo = new ChangeEventInfo();
            $changeEventInfo->setChangeTime(
                $this->convertDateTimeValue($changeEventInfoData[JSONConstants::JSON_CHANGE_EVENT_TIME])
            );
            $changeEventInfo->setChangeType(
                ChangeType::cast($changeEventInfoData[JSONConstants::JSON_CHANGE_EVENT_TYPE])
            );

            $changeEventInfo->setExtensions(
                $this->convertExtension($changeEventInfoData, JSONConstants::getChangeEventKeys())
            );

            $object->setChangeEventInfo($changeEventInfo);
        }

        $object->setIsExactAcl((boolean) ($data[JSONConstants::JSON_OBJECT_EXACT_ACL] ?? false));
        $object->setPolicyIds($this->convertPolicyIdList($data[JSONConstants::JSON_OBJECT_POLICY_IDS] ?? null));

        /**
         * A client MAY add the query parameter succinct (HTTP GET) or the control succinct (HTTP POST) with the
         * value <code>true</code> to a request. If this is set, the repository MUST return properties in a succinct
         * format. That is, whenever the repository renders an object or a query result, it MUST populate the
         * succinctProperties value and MUST NOT populate the properties value.
         *
         * @see http://docs.oasis-open.org/cmis/CMIS/v1.1/os/CMIS-v1.1-os.html#x1-552027r554
         */
        if (isset($data[JSONConstants::JSON_OBJECT_SUCCINCT_PROPERTIES])) {
            $properties = $this->convertSuccinctProperties(
                $data[JSONConstants::JSON_OBJECT_SUCCINCT_PROPERTIES] ?? [],
                (array) ($data[JSONConstants::JSON_OBJECT_PROPERTIES_EXTENSION] ?? [])
            );
        } else {
            $properties = $this->convertProperties(
                $data[JSONConstants::JSON_OBJECT_PROPERTIES] ?? [],
                (array) ($data[JSONConstants::JSON_OBJECT_PROPERTIES_EXTENSION] ?? [])
            );
        }

        $object->setProperties($properties ?? []);
        $object->setRelationships($this->convertObjects($data[JSONConstants::JSON_OBJECT_RELATIONSHIPS] ?? null));
        $object->setRenditions($this->convertRenditions($data[JSONConstants::JSON_OBJECT_RENDITIONS] ?? []));
        $object->setExtensions($this->convertExtension($data, JSONConstants::getObjectKeys()));

        return $object;
    }
public function convertObject ( array $ data = null ) { if ( empty ( $ data ) ) { return null ; } $ object = new ObjectData ( ) ; $ acl = $ this -> convertAcl ( $ data [ JSONConstants :: JSON_OBJECT_ACL ] ?? [ ] , ( boolean ) ( $ data [ JSONConstants :: JSON_OBJECT_EXACT_ACL ] ?? false ) ) ; if ( $ acl !== null ) { $ object -> setAcl ( $ acl ) ; } $ allowableActions = $ this -> convertAllowableActions ( $ data [ JSONConstants :: JSON_OBJECT_ALLOWABLE_ACTIONS ] ?? [ ] ) ; if ( $ allowableActions !== null ) { $ object -> setAllowableActions ( $ allowableActions ) ; } if ( isset ( $ data [ JSONConstants :: JSON_OBJECT_CHANGE_EVENT_INFO ] ) && is_array ( $ data [ JSONConstants :: JSON_OBJECT_CHANGE_EVENT_INFO ] ) ) { $ changeEventInfoData = $ data [ JSONConstants :: JSON_OBJECT_CHANGE_EVENT_INFO ] ; $ changeEventInfo = new ChangeEventInfo ( ) ; $ changeEventInfo -> setChangeTime ( $ this -> convertDateTimeValue ( $ changeEventInfoData [ JSONConstants :: JSON_CHANGE_EVENT_TIME ] ) ) ; $ changeEventInfo -> setChangeType ( ChangeType :: cast ( $ changeEventInfoData [ JSONConstants :: JSON_CHANGE_EVENT_TYPE ] ) ) ; $ changeEventInfo -> setExtensions ( $ this -> convertExtension ( $ changeEventInfoData , JSONConstants :: getChangeEventKeys ( ) ) ) ; $ object -> setChangeEventInfo ( $ changeEventInfo ) ; } $ object -> setIsExactAcl ( ( boolean ) ( $ data [ JSONConstants :: JSON_OBJECT_EXACT_ACL ] ?? false ) ) ; $ object -> setPolicyIds ( $ this -> convertPolicyIdList ( $ data [ JSONConstants :: JSON_OBJECT_POLICY_IDS ] ?? null ) ) ; /**
         * A client MAY add the query parameter succinct (HTTP GET) or the control succinct (HTTP POST) with the
         * value <code>true</code> to a request. If this is set, the repository MUST return properties in a succinct
         * format. That is, whenever the repository renders an object or a query result, it MUST populate the
         * succinctProperties value and MUST NOT populate the properties value.
         *
         * @see http://docs.oasis-open.org/cmis/CMIS/v1.1/os/CMIS-v1.1-os.html#x1-552027r554
         */ if ( isset ( $ data [ JSONConstants :: JSON_OBJECT_SUCCINCT_PROPERTIES ] ) ) { $ properties = $ this -> convertSuccinctProperties ( $ data [ JSONConstants :: JSON_OBJECT_SUCCINCT_PROPERTIES ] ?? [ ] , ( array ) ( $ data [ JSONConstants :: JSON_OBJECT_PROPERTIES_EXTENSION ] ?? [ ] ) ) ; } else { $ properties = $ this -> convertProperties ( $ data [ JSONConstants :: JSON_OBJECT_PROPERTIES ] ?? [ ] , ( array ) ( $ data [ JSONConstants :: JSON_OBJECT_PROPERTIES_EXTENSION ] ?? [ ] ) ) ; } $ object -> setProperties ( $ properties ?? [ ] ) ; $ object -> setRelationships ( $ this -> convertObjects ( $ data [ JSONConstants :: JSON_OBJECT_RELATIONSHIPS ] ?? null ) ) ; $ object -> setRenditions ( $ this -> convertRenditions ( $ data [ JSONConstants :: JSON_OBJECT_RENDITIONS ] ?? [ ] ) ) ; $ object -> setExtensions ( $ this -> convertExtension ( $ data , JSONConstants :: getObjectKeys ( ) ) ) ; return $ object ; }
Converts an object.

@param array|null $data
@return null|ObjectData
Converts an object .