public final class SemanticBuildResult extends Object
The program, complete diagnostics, and recovery sidecar are published together so callers cannot accidentally observe a recovered program while missing the error that made it invalid for strict publication. A fatal rejection has a null program and at least one ERROR diagnostic. A normal successful build has a non-null program, no ERROR diagnostics, and empty recovery metadata.
API status: advanced/preview. Prefer
SqlSemanticAnalyzer for the supported SQL-text pipeline. Direct
builder callers should use this atomic result instead of pairing a legacy
build call with thread-local diagnostic draining.
| Modifier and Type | Method and Description |
|---|---|
static SemanticBuildResult |
completed(SemanticProgram program,
List<Diagnostic> diagnostics)
Construct a result with a built program and optional diagnostics.
|
List<Diagnostic> |
getDiagnostics()
Complete immutable diagnostics for this invocation.
|
SemanticProgram |
getRecoveredProgram()
Return the built program, including a compatibility recovery program
when diagnostics contain an ERROR; null only for a fatal rejection.
|
RecoveryMetadata |
getRecoveryMetadata()
Non-null recovery association sidecar.
|
boolean |
hasErrors() |
boolean |
hasRecoveredInvalidSemantics()
True when a program is retained despite an ERROR or when a producer
explicitly recorded recovered subjects.
|
static SemanticBuildResult |
recovered(SemanticProgram recoveredProgram,
List<Diagnostic> diagnostics,
RecoveryMetadata recoveryMetadata)
Construct a result that retains a program plus explicit recovery
associations.
|
static SemanticBuildResult |
rejected(List<Diagnostic> diagnostics)
Construct a fatal result.
|
public static SemanticBuildResult completed(SemanticProgram program, List<Diagnostic> diagnostics)
public static SemanticBuildResult rejected(List<Diagnostic> diagnostics)
public static SemanticBuildResult recovered(SemanticProgram recoveredProgram, List<Diagnostic> diagnostics, RecoveryMetadata recoveryMetadata)
public SemanticProgram getRecoveredProgram()
public List<Diagnostic> getDiagnostics()
public RecoveryMetadata getRecoveryMetadata()
public boolean hasErrors()
public boolean hasRecoveredInvalidSemantics()