public function getData()
    {
        $data = array();

        /** @var eZContentClassAttribute $contentClassAttribute */
        $contentClassAttribute = $this->ContentObjectAttribute->contentClassAttribute();

        $keywordFieldName = parent::generateAttributeFieldName( $contentClassAttribute, 'lckeyword' );
        $textFieldName = parent::generateAttributeFieldName( $contentClassAttribute, 'text' );
        $tagIDsFieldName = parent::generateSubattributeFieldName( $contentClassAttribute, 'tag_ids', 'sint' );

        $data[$keywordFieldName] = '';
        $data[$textFieldName] = '';
        $data[$tagIDsFieldName] = array();

        if ( !$this->ContentObjectAttribute->hasContent() )
            return $data;

        $objectAttributeContent = $this->ContentObjectAttribute->content();
        if ( !$objectAttributeContent instanceof eZTags )
            return $data;

        $tagIDs = array();
        $keywords = array();

        $this->indexSynonyms = eZINI::instance( 'eztags.ini' )->variable( 'SearchSettings', 'IndexSynonyms' ) === 'enabled';
        $indexParentTags = eZINI::instance( 'eztags.ini' )->variable( 'SearchSettings', 'IndexParentTags' ) === 'enabled';
        $includeSynonyms = eZINI::instance( 'eztags.ini' )->variable( 'SearchSettings', 'IncludeSynonyms' ) === 'enabled';

        $tags = $objectAttributeContent->attribute( 'tags' );
        if ( is_array( $tags ) )
        {
            foreach ( $tags as $tag )
            {
                if ( $tag instanceof eZTagsObject )
                {
                    $this->processTag( $tag, $tagIDs, $keywords, $indexParentTags, $includeSynonyms );
                }
            }
        }

        if ( !empty( $tagIDs ) )
        {
            $data[$keywordFieldName] = implode( ', ', $keywords );
            $data[$textFieldName] = implode( ' ', $keywords );
            $data[$tagIDsFieldName] = $tagIDs;
        }

        $data['ezf_df_tag_ids'] = $tagIDs;
        $data['ezf_df_tags'] = $keywords;

        return $data;
    }