*
* @throws NormalizationException
*/
protected void validateOutput() throws NormalizationException
{
final OutputProcessor outputProcessor = getLayoutProcess().getOutputProcessor();
final LogicalPageBox logicalPageBox = getLogicalPageBox();
if (outputProcessor.getMetaData().isIterative() == false)
{
if (logicalPageBox.isOpen())
{
return;
}
}
if (validateModelStep.isLayoutable(logicalPageBox) == false)
{
return;
}
tableValidationStep.validate(logicalPageBox);
updateTokensStep.compute
(logicalPageBox, getLayoutProcess(), getPageContext());
staticPropertiesStep.compute(logicalPageBox);
marginsStep.compute(logicalPageBox);
paragraphLinebreakStep.compute(logicalPageBox);
icmMetricsStep.compute(logicalPageBox);
tableICMMetricsStep.compute(logicalPageBox);
minorAxisLayoutStep.compute(logicalPageBox);
majorAxisLayoutStep.compute(logicalPageBox);
tableRowHeightStep.compute(logicalPageBox);
breakabilityStep.compute(logicalPageBox);
paginationStep.performPagebreak(logicalPageBox);
// A new page has been started. Recover the page-grid, then restart
// everything from scratch. (We have to recompute, as the pages may
// be different now, due to changed margins or page definitions)
outputProcessor.processContent(logicalPageBox);
// Now fire the pagebreak. This goes through all layers and informs all
// components, that a pagebreak has been encountered and possibly a
// new page has been set. It does not save the state or perform other
// expensive operations. However, it updates the 'isPagebreakEncountered'
// flag, which will be active until the input-feed received a new event.
if (logicalPageBox.isOpen())
{
Log.debug ("PAGEBREAK ENCOUNTERED");
firePagebreak();
cleanBoxesStep.compute(logicalPageBox);
}
else
{
Log.debug ("DOCUMENT FINISHED");
outputProcessor.processingFinished();
}
}