public function convertPropertiesDataToPropertyList(
        ObjectTypeInterface $objectType,
        array $secondaryTypes,
        PropertiesInterface $properties
    ) {
        if (count($objectType->getPropertyDefinitions()) === 0) {
            throw new CmisInvalidArgumentException('Object type has no property definitions!');
        }
        if (count($properties->getProperties()) === 0) {
            throw new CmisInvalidArgumentException('Properties must be set');
        }

        // Iterate trough properties and convert them to Property objects
        $result = [];
        foreach ($properties->getProperties() as $propertyKey => $propertyData) {
            // find property definition
            $apiProperty = $this->convertProperty($objectType, $secondaryTypes, $propertyData);
            $result[$propertyKey] = $apiProperty;
        }

        return $result;
    }