package org.pentaho.reporting.engine.classic.core.layout.build; import org.pentaho.reporting.engine.classic.core.layout.model.RenderBox; import org.pentaho.reporting.engine.classic.core.states.ReportStateKey; public class DummyLayoutModelBuilderContext implements LayoutModelBuilderContext, Cloneable { private LayoutModelBuilderContext parent; private boolean keepWrapperBoxAlive; private boolean autoGeneratedWrapperBox; public DummyLayoutModelBuilderContext( final LayoutModelBuilderContext parent ) { this.parent = parent; } public RenderBox getRenderBox() { return null; } public LayoutModelBuilderContext getParent() { return parent; } public boolean isEmpty() { return true; } public boolean mergeSection( final ReportStateKey stateKey ) { return false; } public void setEmpty( final boolean empty ) { } public void commitAsEmpty() { } public boolean isKeepWrapperBoxAlive() { return keepWrapperBoxAlive; } /** * A post-fix box stays open after the origin-box is closed. * * @param keepWrapperBoxAlive */ public void setKeepWrapperBoxAlive( final boolean keepWrapperBoxAlive ) { this.keepWrapperBoxAlive = keepWrapperBoxAlive; } public boolean isAutoGeneratedWrapperBox() { return autoGeneratedWrapperBox; } /** * A prefix box is closed immediately after the origin-box is closed. Prefix boxes are not merged with silbling boxes. * * @param autoGeneratedWrapperBox */ public void setAutoGeneratedWrapperBox( final boolean autoGeneratedWrapperBox ) { this.autoGeneratedWrapperBox = autoGeneratedWrapperBox; } public LayoutModelBuilderContext close() { return this.parent; } public void addChild( final RenderBox child ) { } public void removeChild( final RenderBox child ) { } public Object clone() { try { return super.clone(); } catch ( CloneNotSupportedException e ) { throw new IllegalStateException( e ); } } public LayoutModelBuilderContext deriveForPagebreak() { final DummyLayoutModelBuilderContext clone = (DummyLayoutModelBuilderContext) clone(); if ( parent != null ) { clone.parent = parent.deriveForPagebreak(); } return clone; } public LayoutModelBuilderContext deriveForStorage( final RenderBox clonedRoot ) { if ( clonedRoot == null ) { throw new NullPointerException(); } final DummyLayoutModelBuilderContext clone = (DummyLayoutModelBuilderContext) clone(); clone.parent = parent.deriveForStorage( clonedRoot ); return clone; } public void validateAfterCommit() { } public void performParanoidModelCheck() { } public void restoreStateAfterRollback() { } public int getDepth() { if ( parent == null ) { return 1; } return 1 + parent.getDepth(); } }