001package gudusoft.gsqlparser.common.structured;
002
003import java.util.Objects;
004
005public final class StructuredArrayType implements StructuredType {
006
007    private final StructuredType elementType;
008
009    public StructuredArrayType(StructuredType elementType) {
010        if (elementType == null) {
011            throw new IllegalArgumentException("elementType must not be null");
012        }
013        this.elementType = elementType;
014    }
015
016    public StructuredType getElementType() {
017        return elementType;
018    }
019
020    @Override
021    public String toDisplayString() {
022        return "ARRAY<" + elementType.toDisplayString() + ">";
023    }
024
025    @Override
026    public boolean equals(Object o) {
027        if (this == o) return true;
028        if (!(o instanceof StructuredArrayType)) return false;
029        return elementType.equals(((StructuredArrayType) o).elementType);
030    }
031
032    @Override
033    public int hashCode() {
034        return Objects.hash("ARRAY", elementType);
035    }
036
037    @Override
038    public String toString() {
039        return toDisplayString();
040    }
041}