/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.preview;
import java.io.Serializable;
import com.google.common.base.Preconditions;
import com.enonic.cms.core.structure.menuitem.MenuItemEntity;
public class PreviewContext
implements Serializable
{
public static final PreviewContext NO_PREVIEW = new PreviewContext();
private ContentPreviewContext contentPreviewContext;
private MenuItemPreviewContext menuItemPreviewContext;
private PreviewContext()
{
}
public PreviewContext( ContentPreviewContext context )
{
this.contentPreviewContext = context;
}
public PreviewContext( MenuItemPreviewContext context )
{
this.menuItemPreviewContext = context;
}
public boolean isPreviewing()
{
return isPreviewingContent() || isPreviewingMenuItem();
}
public boolean isPreviewingContent()
{
return contentPreviewContext != null;
}
public boolean isPreviewingMenuItem()
{
return menuItemPreviewContext != null;
}
public ContentPreviewContext getContentPreviewContext()
{
Preconditions.checkNotNull( contentPreviewContext, "Unexpected call when not previewing a content" );
return contentPreviewContext;
}
public MenuItemPreviewContext getMenuItemPreviewContext()
{
Preconditions.checkNotNull( menuItemPreviewContext, "Unexpected call when not previewing a menuitem" );
return menuItemPreviewContext;
}
public MenuItemEntity getMenuItemInPreviewOrNull()
{
if ( !isPreviewingMenuItem() )
{
return null;
}
return getMenuItemPreviewContext().getMenuItemPreviewed();
}
}