protected function setUp()
 {
     $objObject = $this->createObject("class_module_system_aspect", "");
     self::$arrObjectIds[] = $objObject->getSystemid();
     $objSearchIndexWriter = new class_module_search_indexwriter();
     $objSearchIndexWriter->clearIndex();
     $objSearchDocument_1 = new class_module_search_document();
     $objSearchDocument_1->setStrSystemId($objObject->getSystemid());
     $objSearchDocument_1->setDocumentId(generateSystemid());
     $objSearchDocument_1->addContent("title", "hallo");
     $objSearchDocument_1->addContent("text", "welt");
     $objSearchDocument_1->addContent("subtitle", "blub");
     $objSearchDocument_1->addContent("text2", "blub");
     $objObject = $this->createObject("class_module_search_search", "");
     self::$arrObjectIds[] = $objObject->getSystemid();
     $objSearchDocument_2 = new class_module_search_document();
     $objSearchDocument_2->setStrSystemId($objObject->getSystemid());
     $objSearchDocument_2->setDocumentId(generateSystemid());
     $objSearchDocument_2->addContent("title", "hallo");
     $objSearchDocument_2->addContent("text", "welt");
     $objObject = $this->createObject("class_module_system_aspect", "");
     self::$arrObjectIds[] = $objObject->getSystemid();
     $objSearchDocument_3 = new class_module_search_document();
     $objSearchDocument_3->setStrSystemId($objObject->getSystemid());
     $objSearchDocument_3->setDocumentId(generateSystemid());
     $objSearchDocument_3->addContent("title", "lorem ipsum dolor ipsum");
     $objSearchDocument_3->addContent("text", "dolor ipsum sit amet, consetetur.");
     $objSearchIndexWriter->updateSearchDocumentToDb($objSearchDocument_1);
     $objSearchIndexWriter->updateSearchDocumentToDb($objSearchDocument_2);
     $objSearchIndexWriter->updateSearchDocumentToDb($objSearchDocument_3);
     parent::setUp();
 }
 /**
  * Triggers the indexing of a single object.
  *
  * @param class_model $objInstance
  *
  * @return void
  */
 public function indexObject(class_model $objInstance = null)
 {
     if (!self::isIndexAvailable()) {
         return;
     }
     if ($objInstance != null && $objInstance instanceof class_module_pages_pageelement) {
         $objInstance = $objInstance->getConcreteAdminInstance();
         if ($objInstance != null) {
             $objInstance->loadElementData();
         }
     }
     if ($objInstance == null) {
         return;
     }
     $objSearchDocument = new class_module_search_document();
     $objSearchDocument->setDocumentId(generateSystemid());
     $objSearchDocument->setStrSystemId($objInstance->getSystemid());
     if ($objInstance instanceof interface_search_portalobject) {
         $objSearchDocument->setBitPortalObject(true);
         $objSearchDocument->setStrContentLanguage($objInstance->getContentLang());
     }
     $objReflection = new class_reflection($objInstance);
     $arrProperties = $objReflection->getPropertiesWithAnnotation(self::STR_ANNOTATION_ADDSEARCHINDEX);
     foreach ($arrProperties as $strPropertyName => $strAnnotationValue) {
         $getter = $objReflection->getGetter($strPropertyName);
         $strContent = $objInstance->{$getter}();
         $objSearchDocument->addContent($strPropertyName, $strContent);
     }
     //trigger event-listeners
     class_core_eventdispatcher::getInstance()->notifyGenericListeners(class_search_eventidentifier::EVENT_SEARCH_OBJECTINDEXED, array($objInstance, $objSearchDocument));
     $this->updateSearchDocumentToDb($objSearchDocument);
 }