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