/**
  * Convert given input data array to a ObjectInFolderContainer object
  *
  * @param array|null $data
  * @return null|ObjectInFolderContainer
  * @throws CmisRuntimeException
  */
 public function convertDescendant(array $data = null)
 {
     if (empty($data)) {
         return null;
     }
     $object = null;
     if (isset($data[JSONConstants::JSON_OBJECTINFOLDERCONTAINER_OBJECT])) {
         $object = $this->convertObjectInFolder($data[JSONConstants::JSON_OBJECTINFOLDERCONTAINER_OBJECT]);
     }
     if ($object === null) {
         throw new CmisRuntimeException('Given data could not be converted to ObjectInFolder!');
     }
     $objectInFolderContainer = new ObjectInFolderContainer($object);
     $children = array();
     if (isset($data[JSONConstants::JSON_OBJECTINFOLDERCONTAINER_CHILDREN])) {
         foreach ((array) $data[JSONConstants::JSON_OBJECTINFOLDERCONTAINER_CHILDREN] as $childData) {
             $child = $this->convertDescendant($childData);
             if ($child !== null) {
                 $children[] = $child;
             }
         }
     }
     $objectInFolderContainer->setChildren($children);
     $objectInFolderContainer->setExtensions($this->convertExtension($data, JSONConstants::getObjectInFolderContainerKeys()));
     return $objectInFolderContainer;
 }