*/
public Status checkBreakBefore(final Fo node, final Area area) {
if (! (node instanceof BreakBeforePa)) {
return Status.OK;
}
final BreakBeforePa breakableNode = (BreakBeforePa) node;
if (!(area instanceof NormalFlowRefArea)) {
switch (breakableNode.traitBreakBefore(area)) {
case PAGE:
return Status.FORCE_PAGE_BREAK;
case ODD_PAGE:
return Status.FORCE_PAGE_BREAK_ODD;
case EVEN_PAGE:
return Status.FORCE_PAGE_BREAK_EVEN;
case COLUMN:
return Status.FORCE_COLUMN_BREAK;
default:
return Status.OK;
}
}
final NormalFlowRefArea colArea = (NormalFlowRefArea) area;
switch (breakableNode.traitBreakBefore(area)) {
case PAGE: {
// if first ColumnArea, and empty, return OK
if (colArea.getChildCount() == 0
&& (colArea.siblingIndex() == 0)) {
return Status.OK;