function store($contentClass)
 {
     if ($this->hasDirtyData() && is_object($contentClass)) {
         $classID = $contentClass->attribute('id');
         $classVersion = $contentClass->attribute('version');
         $languages = $contentClass->attribute('languages');
         $initialLanguageID = $contentClass->attribute('initial_language_id');
         // update existing
         $contentClassNames = eZContentClassName::fetchList($classID, $classVersion, array_keys($languages));
         foreach ($contentClassNames as $className) {
             $languageLocale = $className->attribute('language_locale');
             $className->setAttribute('name', $this->nameByLanguageLocale($languageLocale));
             if ($initialLanguageID == $className->attribute('language_id')) {
                 $className->setAttribute('language_id', $initialLanguageID | 1);
             }
             $className->sync();
             // avoid unnecessary sql-updates if nothing changed
             unset($languages[$languageLocale]);
         }
         // create new
         if (count($languages) > 0) {
             foreach ($languages as $languageLocale => $language) {
                 $languageID = $language->attribute('id');
                 if ($initialLanguageID == $languageID) {
                     $languageID = $initialLanguageID | 1;
                 }
                 $className = new eZContentClassName(array('contentclass_id' => $classID, 'contentclass_version' => $classVersion, 'language_locale' => $languageLocale, 'language_id' => $languageID, 'name' => $this->nameByLanguageLocale($languageLocale)));
                 $className->store();
             }
         }
         $this->setHasDirtyData(false);
     }
 }