001package gudusoft.gsqlparser.common.structured;
002
003public final class StructuredFieldBinding {
004
005    private final String outputFieldName;
006    private final StructuredColumnPath sourcePath;
007    private final StructuredType fieldType;
008
009    public StructuredFieldBinding(String outputFieldName,
010                                  StructuredColumnPath sourcePath,
011                                  StructuredType fieldType) {
012        if (outputFieldName == null || outputFieldName.isEmpty()) {
013            throw new IllegalArgumentException("outputFieldName must be non-empty");
014        }
015        if (sourcePath == null) {
016            throw new IllegalArgumentException("sourcePath must not be null");
017        }
018        this.outputFieldName = outputFieldName;
019        this.sourcePath = sourcePath;
020        this.fieldType = fieldType;
021    }
022
023    public String getOutputFieldName() {
024        return outputFieldName;
025    }
026
027    public StructuredColumnPath getSourcePath() {
028        return sourcePath;
029    }
030
031    public StructuredType getFieldType() {
032        return fieldType;
033    }
034}