public int getGroupStartRow( final int group ) { if ( group < 0 || group >= groupStarts.size() ) { if ( groupStarts.isEmpty() ) { return 0; } final GroupStartRecord o = groupStarts.peek(); return o.getRow(); } final GroupStartRecord o = groupStarts.get( group ); return o.getRow(); } }
public int getGroupStartRow( final String group ) { final int size = groupStarts.size(); for ( int i = 0; i < size; i++ ) { final GroupStartRecord o = groupStarts.get( i ); if ( ObjectUtilities.equal( o.getGroupName(), group ) ) { return o.getRow(); } if ( ObjectUtilities.equal( o.getGeneratedGroupName(), group ) ) { return o.getRow(); } } return 0; }
/** * Clones the function. * <P> * Be aware, this does not create a deep copy. If you have complex strucures contained in objects, you have to * override this function. * * @return a clone of this function. * @throws CloneNotSupportedException * this should never happen. */ public final Object clone() throws CloneNotSupportedException { final DefaultOutputFunction sl = (DefaultOutputFunction) super.clone(); sl.repeatingFooterValidator = repeatingFooterValidator.clone(); sl.currentEvent = null; sl.inlineSubreports = (ArrayList<InlineSubreportMarker>) inlineSubreports.clone(); sl.outputHandlers = outputHandlers.clone(); sl.renderedCrosstabLayouts = renderedCrosstabLayouts.clone(); sl.renderedCrosstabLayouts.clear(); final int rSize = renderedCrosstabLayouts.size(); for ( int i = 0; i < rSize; i++ ) { final RenderedCrosstabLayout o = renderedCrosstabLayouts.get( i ); sl.renderedCrosstabLayouts.push( (RenderedCrosstabLayout) o.clone() ); } return sl; }
/** * Creates a cheaper version of the deep-copy of the output function. A pagebreak-derivate is created on every * possible pagebreak position and must contain all undo/rollback information to restore the state of any shared * object when a roll-back is requested. * <p/> * Any failure to implement this method correctly will be a great source of very subtle bugs. * * @return the deep clone. */ public OutputFunction deriveForPagebreak() { try { final DefaultOutputFunction sl = (DefaultOutputFunction) super.clone(); sl.repeatingFooterValidator = repeatingFooterValidator.clone(); sl.renderer = renderer.deriveForPagebreak(); sl.inlineSubreports = (ArrayList<InlineSubreportMarker>) inlineSubreports.clone(); sl.currentEvent = null; sl.pagebreakHandler = (DefaultLayoutPagebreakHandler) pagebreakHandler.clone(); sl.outputHandlers = outputHandlers.clone(); sl.renderedCrosstabLayouts = renderedCrosstabLayouts.clone(); sl.renderedCrosstabLayouts.clear(); final int rSize = renderedCrosstabLayouts.size(); for ( int i = 0; i < rSize; i++ ) { final RenderedCrosstabLayout o = renderedCrosstabLayouts.get( i ); sl.renderedCrosstabLayouts.push( o.derive() ); } return sl; } catch ( final CloneNotSupportedException e ) { throw new IllegalStateException(); } }
/** * Creates a storage-copy of the output function. A storage copy must create a deep clone of all referenced objects so * that it is guaranteed that changes to either the original or the clone do not affect the other instance. * <p/> * Any failure to implement this method correctly will be a great source of very subtle bugs. * * @return the deep clone. */ public OutputFunction deriveForStorage() { try { final DefaultOutputFunction sl = (DefaultOutputFunction) super.clone(); sl.repeatingFooterValidator = repeatingFooterValidator.clone(); sl.renderer = renderer.deriveForStorage(); sl.inlineSubreports = (ArrayList<InlineSubreportMarker>) inlineSubreports.clone(); sl.currentEvent = null; sl.pagebreakHandler = (DefaultLayoutPagebreakHandler) pagebreakHandler.clone(); sl.pagebreakHandler.setReportState( null ); sl.outputHandlers = outputHandlers.clone(); sl.renderedCrosstabLayouts = renderedCrosstabLayouts.clone(); sl.renderedCrosstabLayouts.clear(); final int rSize = renderedCrosstabLayouts.size(); for ( int i = 0; i < rSize; i++ ) { final RenderedCrosstabLayout o = renderedCrosstabLayouts.get( i ); sl.renderedCrosstabLayouts.push( o.derive() ); } return sl; } catch ( final CloneNotSupportedException e ) { throw new IllegalStateException(); } }
final int openContexts = contexts.size(); for ( int i = 0; i < openContexts; i++ ) { final RenderBox renderBox = contexts.get( i ); final long cachedWidth = getEndOfLine() - renderBox.getCachedX(); renderBox.setCachedWidth( cachedWidth );
final FormulaElement lastElement = ( count >= 1 ) ? (FormulaElement) rootElement.getElement( count - 1 ) : null; if ( ( lastElement != null ) && ( lastElement.getEndOffset() >= offset ) ) { return (FormulaFunctionElement) functionsStack.get( 0 ); } else { return (FormulaFunctionElement) functionsStack.peek();
final ArrayList<RenderBox> paddingBoxes = new ArrayList<RenderBox>( size ); for ( int i = 0; i < size; i++ ) { final RenderBox renderBox = context.get( i ); renderBox.setCachedWidth( posX - renderBox.getCachedX() ); final RenderBox split = renderBox.split( RenderNode.HORIZONTAL_AXIS );