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}