Class AbacReference

java.lang.Object
edu.internet2.middleware.grouper.abac.AbacReference

public class AbacReference extends Object
Represents a reference extracted from an ABAC/JEXL script for visualization purposes. Can be a leaf reference (group, attribute, row) or a compound node grouping OR/AND subexpressions.
  • Constructor Details

    • AbacReference

      public AbacReference(AbacReference.RefType refType, String name, String value, boolean negated, AbacReference.Connective connective)
      Constructor for leaf references (group, attribute, row).
      Parameters:
      refType - the type of reference (group, attribute, or row)
      name - the group name, attribute alias, or row alias
      value - for attributes: the value condition (or null); for rows: the filter expression; for groups: null
      negated - whether this reference is negated (preceded by NOT in the script)
      connective - the parent connective context (AND or OR)
    • AbacReference

      public AbacReference(AbacReference.Connective compoundConnective, boolean negated, AbacReference.Connective parentConnective)
      Constructor for compound references (OR or AND subexpressions).
      Parameters:
      compoundConnective - the internal connective of this compound (OR or AND)
      negated - whether this compound is negated
      parentConnective - how this compound connects to its parent (AND or OR)
  • Method Details

    • getRefType

      public AbacReference.RefType getRefType()
    • getName

      public String getName()
    • getValue

      public String getValue()
    • isNegated

      public boolean isNegated()
    • setNegated

      public void setNegated(boolean negated)
    • getConnective

      public AbacReference.Connective getConnective()
    • setConnective

      public void setConnective(AbacReference.Connective connective)
    • getChildren

      public List<AbacReference> getChildren()
    • addChild

      public void addChild(AbacReference child)
    • getPopulationCount

      public int getPopulationCount()
    • setPopulationCount

      public void setPopulationCount(int populationCount)
    • getDisplayDescription

      public String getDisplayDescription()
    • setDisplayDescription

      public void setDisplayDescription(String displayDescription)
    • isContainsSubject

      public boolean isContainsSubject()
    • setContainsSubject

      public void setContainsSubject(boolean containsSubject)
    • isMemberOfAny

      public boolean isMemberOfAny()
    • setMemberOfAny

      public void setMemberOfAny(boolean memberOfAny)
    • getAttributeValues

      public List<String> getAttributeValues()
    • setAttributeValues

      public void setAttributeValues(List<String> attributeValues)
    • isAttributeNullCheck

      public boolean isAttributeNullCheck()
    • setAttributeNullCheck

      public void setAttributeNullCheck(boolean attributeNullCheck)
    • isTerseUnsupported

      public boolean isTerseUnsupported()
    • setTerseUnsupported

      public void setTerseUnsupported(boolean terseUnsupported)
    • isRowInnerOr

      public boolean isRowInnerOr()
    • setRowInnerOr

      public void setRowInnerOr(boolean rowInnerOr)
    • computeId

      public String computeId()
      Returns a unique identifier for this reference, suitable for use as a node ID. The negated flag is folded into the prefix so a positive and a negated reference with the same description (e.g. positive "affiliationActive" and the post-strip rendering of "!affiliationActive" elsewhere in the same script) do not collapse to the same graph node.
    • computeDisplayLabel

      public String computeDisplayLabel()
      Returns a human-readable display label for this reference.