original_string: 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;
      }
code: 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;
      }
code_tokens: 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 ; }
docstring: Converts an object.
  
  @param array|null $data
  @return null|ObjectData
docstring_tokens: Converts an object .