/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.content.category; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.google.common.base.Preconditions; import com.enonic.cms.core.content.contenttype.ContentTypeEntity; import com.enonic.cms.core.content.contenttype.ContentTypeKey; import com.enonic.cms.core.language.LanguageEntity; import com.enonic.cms.core.time.TimeService; import com.enonic.cms.store.dao.ContentTypeDao; import com.enonic.cms.store.dao.LanguageDao; @Component public class UnitFactory { @Autowired private TimeService timeService; @Autowired private LanguageDao languageDao; @Autowired private ContentTypeDao contentTypeDao; UnitEntity createNewUnit( final StoreNewCategoryCommand command ) { Preconditions.checkNotNull( command.getLanguage(), "Expected language to be specified when creating a content archive" ); final LanguageEntity language = languageDao.findByKey( command.getLanguage() ); Preconditions.checkNotNull( language, "Specified language does not exist: " + command.getLanguage() ); final UnitEntity newUnit = new UnitEntity(); newUnit.setDeleted( false ); newUnit.setName( command.getName() ); newUnit.setLanguage( language ); newUnit.setTimestamp( timeService.getNowAsDateTime().toDate() ); if ( command.getAllowedContentTypes() != null ) { for ( ContentTypeKey allowedContentTypeKey : command.getAllowedContentTypes() ) { final ContentTypeEntity allowedContentType = contentTypeDao.findByKey( allowedContentTypeKey ); Preconditions.checkNotNull( allowedContentType, "Specified content type to allow for content archive does not exist: " + allowedContentTypeKey ); newUnit.addContentType( allowedContentType ); } } return newUnit; } }