Class GraphExpansion

  • All Implemented Interfaces:
    KeyExpressionVisitor.Result

    public class GraphExpansion
    extends Object
    implements KeyExpressionVisitor.Result
    Class to abstract behavior when query expansion is applied to query components or key expressions. An object of this class represents a conglomeration for result values, predicates, quantifiers before those elements are unified and eventually find their home in a SelectExpression. Another way of thinking about this class is to conceptualize logic implemented here as a pre stage to actually creating expressions, as a builder of a SelectExpressions of sorts. The fundamental difference between a builder in the regular sense and this class is that it also provides getters to all elements and the ability to merge other GraphExpansions in a additive manner. This class also hides some data cleansing process, in particular related to potential duplicity on place holders, which must be corrected (de-duplicated) before the place holders are used in the predicates of e.g. a match candidate.