case TABLE_CAPTION: {
return new TableCaption(parent, propertyList);
}
case TABLE_CELL: {
if (parent instanceof TableRow) {
final TableRow parentRow = (TableRow) parent;
return new TableCell(parentRow, propertyList);
}
if (parent instanceof AbstractTablePart) {
final AbstractTablePart tablePart = (AbstractTablePart) parent;
return new TableCell(tablePart, propertyList);
}
throwException(locator, "fo:" + enumeration.toXslFo()
+ " must be child of fo:table-row, fo:table-body, " +
"fo:table-header, or fo:table-footer.");
return null;
}
case TABLE_COLUMN: {
return new TableColumn(parent, propertyList);
}
case TABLE_FOOTER: {
final Table table = parentTable(enumeration, parent, locator);
return new TableFooter(table, propertyList);
}
case TABLE_HEADER: {
final Table table = parentTable(enumeration, parent, locator);
return new TableHeader(table, propertyList);
}
case TABLE_ROW: {
return new TableRow(parent, propertyList,
false);
}
case TITLE: {
return new Title(parent, propertyList);
}