Class ProjectionElem

java.lang.Object
org.eclipse.rdf4j.query.algebra.AbstractQueryModelNode
org.eclipse.rdf4j.query.algebra.ProjectionElem
All Implemented Interfaces:
Serializable, Cloneable, GraphPatternGroupable, QueryModelNode, VariableScopeChange

public class ProjectionElem extends AbstractQueryModelNode
Projection elements control which of the selected expressions (produced by the WHERE clause of a query) are returned in the solution, and the order in which they appear.

In SPARQL SELECT queries, projection elements are the variables determined by the algorithm for finding SELECT expressions (see SPARQL 1.1 Query Language Recommendation, section 18.2.4.4). Each projection element will be a single variable name (any aliasing is handled by the use of Extensions).

In SPARQL CONSTRUCT queries, the projection elements are used to map the variables obtained from the SELECT expressions to the required statement patterns. In this case, each projection element will have an additional target name that maps each projection variable name to one of subject, predicate, object or context.

Author:
Jeen Broekstra
See Also:
  • Constructor Details

    • ProjectionElem

      public ProjectionElem()
      Create a new empty ProjectionElem.
    • ProjectionElem

      public ProjectionElem(String name)
      Create a new ProjectionElem with a variable name.
      Parameters:
      name - The name of the projection element (typically the name of the variable in the select expressions). May not be null.
    • ProjectionElem

      public ProjectionElem(String name, String targetName)
      Create a new ProjectionElem with a variable name and an additional mapped target name
      Parameters:
      name - The name of the projection element (typically the name of the variable in the select expressions). May not be null.
      targetName - The name of the variable the projection element value should be mapped to, to produce the projection. Used in CONSTRUCT queries for mapping select expressions to statement patterns. May be null.
  • Method Details

    • getName

      public String getName()
      Get the name of the projection element (typically the name of the variable in the select expressions)
    • getSourceName

      @Deprecated(since="4.1.1", forRemoval=true) public String getSourceName()
      Deprecated, for removal: This API element is subject to removal in a future version.
      since 4.1.1. Use getName() instead.
    • setSourceName

      @Deprecated(since="4.1.1", forRemoval=true) public void setSourceName(String sourceName)
      Deprecated, for removal: This API element is subject to removal in a future version.
      since 4.1.1. Use setName(String) instead.
    • setName

      public void setName(String name)
      Set the name of the projection element (typically the name of the variable in the select expressions)
      Parameters:
      name - the projection variable name. May not be null.
    • getProjectionAlias

      public Optional<String> getProjectionAlias()
      Get the alias the projection element value should be mapped to. Used in CONSTRUCT queries for mapping select expressions to statement patterns.
      Returns:
      an optionally empty projection alias.
    • setProjectionAlias

      public void setProjectionAlias(String alias)
      Set the alias the projection element value should be mapped to. Used in CONSTRUCT queries for mapping select expressions to statement patterns.
      Parameters:
      alias - the projection alias.
    • setTargetName

      @Deprecated(since="4.1.1", forRemoval=true) public void setTargetName(String targetName)
      Deprecated, for removal: This API element is subject to removal in a future version.
      since 4.1.1. Use setProjectionAlias(String) instead.
    • getTargetName

      @Deprecated(since="4.1.1", forRemoval=true) public String getTargetName()
      Deprecated, for removal: This API element is subject to removal in a future version.
      since 4.1.1. Use getProjectionAlias() instead.
    • visit

      public <X extends Exception> void visit(QueryModelVisitor<X> visitor) throws X
      Description copied from interface: QueryModelNode
      Visits this node. The node reports itself to the visitor with the proper runtime type.
      Throws:
      X
    • visitChildren

      public <X extends Exception> void visitChildren(QueryModelVisitor<X> visitor) throws X
      Description copied from class: AbstractQueryModelNode
      Dummy implementation of QueryModelNode.visitChildren(org.eclipse.rdf4j.query.algebra.QueryModelVisitor<X>) that does nothing. Subclasses should override this method when they have child nodes.
      Specified by:
      visitChildren in interface QueryModelNode
      Overrides:
      visitChildren in class AbstractQueryModelNode
      Throws:
      X
    • getSignature

      public String getSignature()
      Description copied from class: AbstractQueryModelNode
      Default implementation of QueryModelNode.getSignature() that prints the name of the node's class.
      Specified by:
      getSignature in interface QueryModelNode
      Overrides:
      getSignature in class AbstractQueryModelNode
      Returns:
      The node's signature, e.g. SLICE (offset=10, limit=10).
    • equals

      public boolean equals(Object other)
      Description copied from interface: QueryModelNode
      Returns true if this query model node and its children are recursively equal to o and its children.
      Specified by:
      equals in interface QueryModelNode
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • clone

      public ProjectionElem clone()
      Description copied from interface: QueryModelNode
      Returns a (deep) clone of this query model node. This method recursively clones the entire node tree, starting from this nodes.
      Specified by:
      clone in interface QueryModelNode
      Overrides:
      clone in class AbstractQueryModelNode
      Returns:
      A deep clone of this query model node.
    • hasAggregateOperatorInExpression

      public boolean hasAggregateOperatorInExpression()
      Returns:
      Returns the aggregateOperatorInExpression.
    • setAggregateOperatorInExpression

      public void setAggregateOperatorInExpression(boolean aggregateOperatorInExpression)
      Parameters:
      aggregateOperatorInExpression - The aggregateOperatorInExpression to set.
    • getSourceExpression

      public ExtensionElem getSourceExpression()
      Returns:
      Returns the sourceExpression.
    • setSourceExpression

      public void setSourceExpression(ExtensionElem sourceExpression)
      Parameters:
      sourceExpression - The sourceExpression to set.