/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.content.command;
import org.springframework.util.Assert;
import com.enonic.cms.core.content.ContentEntity;
import com.enonic.cms.core.content.ContentKey;
import com.enonic.cms.core.content.ContentStatus;
import com.enonic.cms.core.content.ContentVersionEntity;
import com.enonic.cms.core.content.category.CategoryEntity;
import com.enonic.cms.core.content.category.CategoryKey;
import com.enonic.cms.core.security.user.UserEntity;
import com.enonic.cms.core.security.user.UserKey;
public class CreateContentCommand
extends BaseContentCommand
{
private UserKey creator;
private CategoryKey category;
private ContentStatus status;
private ContentKey source;
private AccessRightsStrategy accessRightsStrategy = AccessRightsStrategy.USE_GIVEN;
private String contentName;
public void populateCommandWithContentValues( ContentEntity content )
{
setContentName( content.getName() );
setCategory( content.getCategory() );
setAvailableFrom( content.getAvailableFrom() );
setAvailableTo( content.getAvailableTo() );
setPriority( content.getPriority() );
setLanguage( content.getLanguage() );
if ( content.getSource() != null )
{
setSource( content.getSource().getKey() );
}
addContentAccessRights( content.getContentAccessRights(), content );
}
public void populateCommandWithContentVersionValues( ContentVersionEntity contentVersion )
{
setContentData( contentVersion.getContentData() );
setStatus( contentVersion.getStatus() );
setChangeComment( contentVersion.getChangeComment() );
}
public void setCreator( UserKey value )
{
Assert.notNull( value );
this.creator = value;
}
public void setCreator( UserEntity value )
{
Assert.notNull( value );
this.creator = value.getKey();
}
public UserKey getCreator()
{
return creator;
}
public CategoryKey getCategory()
{
return category;
}
public void setCategory( CategoryEntity value )
{
Assert.notNull( value );
this.category = value.getKey();
}
public void setCategory( CategoryKey value )
{
Assert.notNull( value );
this.category = value;
}
public void setAccessRightsStrategy( final AccessRightsStrategy value )
{
this.accessRightsStrategy = value;
}
public AccessRightsStrategy getAccessRightsStrategy()
{
return accessRightsStrategy;
}
public enum AccessRightsStrategy
{
USE_GIVEN,
INHERIT_FROM_CATEGORY
}
public ContentStatus getStatus()
{
return status;
}
public void setStatus( final ContentStatus status )
{
this.status = status;
}
public ContentKey getSource()
{
return source;
}
public void setSource( final ContentKey value )
{
this.source = value;
}
public String getContentName()
{
return contentName;
}
public void setContentName( final String contentName )
{
this.contentName = contentName;
}
}