public final class JsonManifestCatalogInputReader extends Object implements CatalogInputReader
CatalogInputKind.JSON_MANIFEST sources. Parses a JSON document into
UnifiedCatalogModel via JSON.parseObject(String) (the in-tree
gudusoft.gsqlparser.util.json, no new compile-scope dependency — see spike
docs/designs/catalog-input-interface-spikes/json-dependency.md).
The reader walks the parsed Map/List tree manually rather than using
reflection-based mapping. Builders apply per-field validation; missing required fields
fail with CatalogInputException; unknown fields are tolerated for forward
compatibility with manifests that add new keys.
Manifest schema (key fields, top-level keys are case-sensitive):
{
"apiVersion": "1", // optional, defaults to "1"
"vendor": "oracle", // required; matches EDbVendor name with or
// without the "dbv" prefix (case-insensitive)
"source": { "name": "...", "readMillis": 0 },
"identifier": { ...IdentifierConfig fields... },
"defaults": { "catalog": "...", "schema": "...", "server": "..." },
"catalogs": [
{ "name": "...", "schemas": [
{ "name": "...",
"tables": [{ "name": "...", "columns": [...], "constraints": [...],
"indexes": [...], "properties": {} }],
"views": [{ "name": "...", "definition": "...",
"materialized": false, "columns": [...] }],
"routines": [{ "name": "...", "kind": "FUNCTION|PROCEDURE|PACKAGE|ROUTINE",
"returns": "...", "parameters": [...] }],
"synonyms": [{ "name": "...", "target": "schema.object" }],
"sequences": [{ "name": "...", "startsWith": 1, "incrementBy": 1 }]
}
]}
]
}
| Modifier and Type | Class and Description |
|---|---|
static class |
JsonManifestCatalogInputReader.Factory
ServiceLoader-discoverable factory.
|
| Constructor and Description |
|---|
JsonManifestCatalogInputReader() |
| Modifier and Type | Method and Description |
|---|---|
CatalogInputKind |
kind() |
UnifiedCatalogModel |
read(CatalogInputSource source,
CatalogLoadOptions options) |
boolean |
supports(CatalogInputSource source,
CatalogLoadOptions options) |
public JsonManifestCatalogInputReader()
public CatalogInputKind kind()
kind in interface CatalogInputReaderpublic boolean supports(CatalogInputSource source, CatalogLoadOptions options)
supports in interface CatalogInputReaderpublic UnifiedCatalogModel read(CatalogInputSource source, CatalogLoadOptions options) throws CatalogInputException
read in interface CatalogInputReaderCatalogInputException