CustomFormatHandler#

com.palmyralabs.palmyra.handlers.CustomFormatHandler

Escape hatch for bespoke output formats (PDF, JSON-lines, fixed-width, etc.).

Methods#

Method Signature
getWriter CustomResultSetWriter getWriter(String format)

Return a writer keyed on the requested format; Palmyra’s query pipeline pushes rows through it.

Example#

@Component
@CrudMapping(value = "/v1/admin/user/export", type = User.class)
public class UserCustomFormatHandler implements CustomFormatHandler {

    @Override
    public CustomResultSetWriter getWriter(String format) {
        return switch (format.toLowerCase()) {
            case "jsonl" -> new JsonLinesWriter();
            case "pdf"   -> new PdfReportWriter("Users");
            case "tsv"   -> new DelimitedWriter('\t');
            default      -> throw new UnsupportedFormatException(format);
        };
    }
}