001package gudusoft.gsqlparser.common.structured;
002
003import gudusoft.gsqlparser.nodes.TParseTreeNode;
004
005/**
006 * Vendor-specific adapter that detects a structured-dataflow pattern
007 * (e.g. Spark {@code explode(from_json(col, schema))}) and returns a
008 * vendor-neutral {@link StructuredDataflowDescriptor}. Returning
009 * {@code null} means the adapter does not recognize the input, in which
010 * case existing lineage/IR behavior runs unchanged.
011 */
012public interface StructuredDataflowAdapter {
013
014    /**
015     * @return descriptor if the adapter recognizes the pattern, else {@code null}.
016     */
017    StructuredDataflowDescriptor describe(TParseTreeNode node, StructuredAdapterContext context);
018}