class PdfPTableEventForwarder implements PdfPTableEvent {

    /**
     * ArrayList containing all the PageEvents that have to be executed.
     */
    protected List<PdfPTableEvent> events = new ArrayList<>();

    /**
     * Add a page event to the forwarder.
     *
     * @param event an event that has to be added to the forwarder.
     */
    public void addTableEvent(PdfPTableEvent event) {
        events.add(event);
    }

    /**
     * @see com.lowagie.text.pdf.PdfPTableEvent#tableLayout(com.lowagie.text.pdf.PdfPTable, float[][], float[], int,
     * int, com.lowagie.text.pdf.PdfContentByte[])
     */
    public void tableLayout(PdfPTable table, float[][] widths, float[] heights, int headerRows, int rowStart,
            PdfContentByte[] canvases) {<FILL_FUNCTION_BODY>}
}

        PdfPTableEvent event;
        for (Object event1 : events) {
            event = (PdfPTableEvent) event1;
            event.tableLayout(table, widths, heights, headerRows, rowStart, canvases);
        }
    
<no_super_class>