/**
  * Deletes all conditions of the objects with the given ids.
  * 
  * @param	string			$definitionName
  * @param	array<integer>		$objectIDs
  */
 public function deleteConditions($definitionName, array $objectIDs)
 {
     if (empty($objectIDs)) {
         return;
     }
     $definition = ObjectTypeCache::getInstance()->getDefinitionByName($definitionName);
     if ($definition === null) {
         throw new SystemException("Unknown object type definition with name '" . $definitionName . "'");
     }
     $objectTypes = ObjectTypeCache::getInstance()->getObjectTypes($definitionName);
     $objectTypeIDs = array();
     foreach ($objectTypes as $objectType) {
         $objectTypeIDs[] = $objectType->objectTypeID;
     }
     if (empty($objectTypeIDs)) {
         return;
     }
     $conditionList = new ConditionList();
     $conditionList->getConditionBuilder()->add('objectTypeID IN (?)', array($objectTypeIDs));
     $conditionList->getConditionBuilder()->add('objectID IN (?)', array($objectIDs));
     $conditionList->readObjects();
     if (count($conditionList)) {
         $conditionAction = new ConditionAction($conditionList->getObjects(), 'delete');
         $conditionAction->executeAction();
     }
 }
 /**
  * @see	\wcf\system\cache\builder\AbstractCacheBuilder::rebuild()
  */
 public function rebuild(array $parameters)
 {
     if (!isset($parameters['definitionID'])) {
         throw new SystemException("Missing 'definitionID' parameter");
     }
     $definition = ObjectTypeCache::getInstance()->getDefinition($parameters['definitionID']);
     if ($definition === null) {
         throw new SystemException("Unknown object type definition with id '" . $parameters['definitionID'] . "'");
     }
     $objectTypes = ObjectTypeCache::getInstance()->getObjectTypes($definition->definitionName);
     if (empty($objectTypes)) {
         return array();
     }
     $objectTypeIDs = array();
     foreach ($objectTypes as $objectType) {
         $objectTypeIDs[] = $objectType->objectTypeID;
     }
     $conditionList = new ConditionList();
     $conditionList->getConditionBuilder()->add('condition_table.objectTypeID IN (?)', array($objectTypeIDs));
     $conditionList->readObjects();
     $groupedConditions = array();
     foreach ($conditionList as $condition) {
         if (!isset($groupedConditions[$condition->objectID])) {
             $groupedConditions[$condition->objectID] = array();
         }
         $groupedConditions[$condition->objectID][$condition->conditionID] = $condition;
     }
     return $groupedConditions;
 }