/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.vertical.engine.handlers; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.apache.commons.lang.StringUtils; import org.jdom.Document; import org.jdom.Element; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.enonic.cms.framework.xml.XMLDocument; import com.enonic.cms.framework.xml.XMLDocumentFactory; import com.enonic.cms.core.CalendarUtil; import com.enonic.cms.core.language.LanguageEntity; import com.enonic.cms.core.language.LanguageKey; import com.enonic.cms.store.dao.LanguageDao; @Component public final class LanguageHandler { @Autowired private LanguageDao languageDao; public String getLanguageCode( LanguageKey languageKey ) { LanguageEntity entity = languageDao.findByKey( languageKey ); return entity != null ? entity.getCode() : null; } public void createLanguage( String languageCode, String description ) { LanguageEntity entity = new LanguageEntity(); entity.setCode( languageCode ); entity.setDescription( description ); entity.setTimestamp( new Date() ); this.languageDao.store( entity ); } public XMLDocument getLanguage( LanguageKey languageKey ) { ArrayList<LanguageEntity> list = new ArrayList<LanguageEntity>(); LanguageEntity entity = languageDao.findByKey( languageKey ); if ( entity != null ) { list.add( entity ); } return createLanguagesDoc( list ); } private XMLDocument createLanguagesDoc( List<LanguageEntity> list ) { Element root = new Element( "languages" ); for ( LanguageEntity value : list ) { Element elem = new Element( "language" ); elem.setAttribute( "key", String.valueOf( value.getKey() ) ); elem.setAttribute( "languagecode", value.getCode() ); elem.setAttribute( "timestamp", CalendarUtil.formatTimestamp( value.getTimestamp() ) ); elem.addContent( value.getDescription() ); root.addContent( elem ); } return XMLDocumentFactory.create( new Document( root ) ); } public XMLDocument getLanguages() { return createLanguagesDoc( languageDao.findAll() ); } public void removeLanguage( LanguageKey languageKey ) { LanguageEntity entity = languageDao.findByKey( languageKey ); if ( entity == null ) { return; } this.languageDao.delete( entity ); } public void updateLanguage( LanguageKey languageKey, String languageCode, String description ) { if ( StringUtils.isBlank( languageCode ) ) { return; } LanguageEntity entity = languageDao.findByKey( languageKey ); if ( entity == null ) { return; } entity.setCode( languageCode ); entity.setDescription( description ); entity.setTimestamp( new Date() ); } }