Package com.darkcollective.relix.lang.ast.source
package com.darkcollective.relix.lang.ast.source
Source-declaration AST — the configuration types that describe how a
virtual relation retrieves its data.
Source hierarchy
SourceConfig (sealed) ├── HttpSourceConfig — HTTP/REST API (JSON or CSV response) ├── DatabaseSourceConfig — JDBC-accessible table or view └── CsvFileSourceConfig — local CSV file
Column specs
Each source type carries a list of ColumnSpecs
that describe the relation's schema as seen by queries. A column is either:
ColumnDirection.IN— an input parameter pushed into the request (e.g. a URL query parameter). Only meaningful forHttpSourceConfig.ColumnDirection.OUT— a value extracted from the response or result set.
Column bindings
ColumnBinding is a sealed
interface describing how a column maps to the transport:
QueryParamBinding— URL query parameter (as query("q")).PathParamBinding— URL path segment (as path("id")).HeaderBinding— request header (as header("X-City")).ExtractPathBinding— JSONPath into the response body (at "$.main.temp").
-
ClassDescriptionAPI-key authentication: the connector sends a named key either as a request header or as a URL query parameter.Where an
ApiKeyAuthkey is placed in the request.Sealed root for an HTTP source's authentication shorthand.HTTP basic authentication: the connector sendsAuthorization: Basic <base64(username:password)>.Bearer-token authentication: the connector sendsAuthorization: Bearer <token>.Sealed interface describing how a column maps to the underlying transport.Indicates whether a column spec describes an input parameter or an output value.One entry of areferences:block on a database or connection-table source — a foreign-key style arrow from columns of the declaring source to columns of another relation:Describes one column in a source declaration's schema.Configuration for a source bound to a table within a namedconnection, e.g.Extracts tabular data from a CSV response body.Configuration for a local CSV file source.Configuration for a named database connection — the JDBC coordinates shared by every table referenced through it.Configuration for a database-backed source (JDBC table or view).Binds anOUTcolumn to a JSONPath expression within the response body.Sealed interface describing how to extract tabular data from an HTTP response.Configuration for a generator source — a leaf relation whose rows are produced by engine code rather than read from a file or database.Binds anINcolumn to an HTTP request header.HTTP request method for anHttpSourceConfig.Configuration for an HTTP/REST API source.Extracts tabular data from a JSON response body.Transport configuration for a local JSON file source.Maps a logical pagination concept to a URL query parameter.Declares how an HTTP source's pagination maps to URL parameters.Binds anINcolumn to a URL path segment.Binds anINcolumn to a URL query parameter.Sealed root interface for the transport configuration of a source declaration.