001package gudusoft.gsqlparser.lineage2.contract;
002
003/**
004 * The frozen identity-layer triple carried on every edge
005 * (lineage2-contract.md ยง3, rev 3). Values are produced by
006 * {@link GuidEncoder}.
007 *
008 * <p>Internal API: not part of the public gsqlparser surface.
009 */
010public final class EdgeIdentity {
011
012    private final String factGuid;
013    private final String variantGuid;
014    private final String occurrenceGuid;
015
016    public EdgeIdentity(String factGuid, String variantGuid, String occurrenceGuid) {
017        if (factGuid == null || variantGuid == null || occurrenceGuid == null) {
018            throw new IllegalArgumentException(
019                    "factGuid, variantGuid, and occurrenceGuid must not be null");
020        }
021        this.factGuid = factGuid;
022        this.variantGuid = variantGuid;
023        this.occurrenceGuid = occurrenceGuid;
024    }
025
026    public String getFactGuid() {
027        return factGuid;
028    }
029
030    public String getVariantGuid() {
031        return variantGuid;
032    }
033
034    public String getOccurrenceGuid() {
035        return occurrenceGuid;
036    }
037}