/* * 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(); } }