public final class CanonKey extends Object
Two keys compare equal iff they were produced in the same rule domain — vendor,
object group, policy fingerprint (rules + vendor flags, including the default
collation) and collator identity — AND their canonical payloads match. The payload is
the IdentifierService.keyForMap(java.lang.String, gudusoft.gsqlparser.sqlenv.ESQLDataObjectType) text for fold-based rules, or the
CollationKey bytes (from the same collator the equality path uses)
for collation-based rules. The comparison rule that selected the payload is
deliberately NOT part of equality: under quoted-case-preserving vendors, unquoted
foo (folded to FOO) and quoted "FOO" (preserved as FOO)
must converge on the same key even though different rules produced them.
In-process only. Collation key bytes are only stable within one
JVM/collator configuration; never persist or exchange CanonKeys. Custom
CollatorProvider subclasses are isolated by class name — two instances of the
same class with different behavior cannot be distinguished.
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object o) |
String |
getCanonText()
Canonical text payload.
|
IdentifierProfile.ObjectGroup |
getGroup() |
EDbVendor |
getVendor() |
int |
hashCode() |
boolean |
isCollationBased() |
String |
toString() |
public IdentifierProfile.ObjectGroup getGroup()
public String getCanonText()
public boolean isCollationBased()