/**
  * @param f_peristentdocument_PersistentDocument $conditionOn
  * @return integer[]
  */
 private function getExcludeIds($conditionOn)
 {
     $excludeIds = array();
     if ($conditionOn instanceof form_persistentdocument_field) {
         $excludeIds = array($conditionOn->getId());
     } else {
         if ($conditionOn instanceof form_persistentdocument_group) {
             $query = form_FieldService::getInstance()->createQuery();
             $query->add(Restrictions::descendentOf($conditionOn->getId()));
             $query->setProjection(Projections::property('id'));
             $excludeIds = $query->findColumn('id');
         }
     }
     return $excludeIds;
 }
 /**
  * @param form_persistentdocument_baseform $form
  * @param integer[] $excludeIds
  */
 public function getValidActivationFields($form, $excludeIds = array())
 {
     $query = form_FieldService::getInstance()->createQuery();
     $query->add(Restrictions::descendentOf($form->getId()));
     if (f_util_ArrayUtils::isNotEmpty($excludeIds)) {
         $query->add(Restrictions::notin('id', $excludeIds));
     }
     $validFields = array();
     foreach ($query->find() as $field) {
         if ($field instanceof form_persistentdocument_boolean || $field instanceof form_persistentdocument_list) {
             $validFields[] = $field;
         }
     }
     return $validFields;
 }
 /**
  * @param form_persistentdocument_form
  * @deprecated with no replacement
  */
 public function getPreviewAttributes($document)
 {
     $attributes = array();
     $query = f_persistentdocument_PersistentProvider::getInstance()->createQuery('modules_form/field');
     $query->add(Restrictions::descendentOf($document->getId()));
     $fields = $query->find();
     $attributes['fieldsCount'] = count($fields);
     $attributes['responsesCount'] = $document->getResponseCount();
     return $attributes;
 }