public class JoinGroupNode extends GraphPatternGroup<IGroupMemberNode>
DEFAULT_INITIAL_CAPACITY
Constructor and Description |
---|
JoinGroupNode()
Construct a non-optional join group.
|
JoinGroupNode(boolean optional) |
JoinGroupNode(boolean optional,
IGroupMemberNode child)
Construct a possibly optional group having the specified child as its
initial member.
|
JoinGroupNode(BOp[] args,
Map<String,Object> anns)
Required shallow copy constructor.
|
JoinGroupNode(IGroupMemberNode child)
Construct a non-optional join group having the specified child as its
initial member.
|
JoinGroupNode(JoinGroupNode op)
Constructor required for
com.bigdata.bop.BOpUtility#deepCopy(FilterNode) . |
JoinGroupNode(TermNode context,
IGroupMemberNode child)
Construct a GRAPH group having the specified child as its initial member.
|
Modifier and Type | Method and Description |
---|---|
List<FilterNode> |
getAllFiltersInGroup()
Return only the filter child nodes in this group.
|
List<AssignmentNode> |
getAssignments()
Return any
LET x:= expr or (expr AS ?x) nodes
in this group (these are modeled in exactly the same way by the
AST AssignmentNode ). |
TermNode |
getContext()
Return the context for the group graph pattern dominating this node.
|
Set<IVariable<?>> |
getDesiredBound(StaticAnalysis sa)
Get variables that are not required to be bound, but desired in the
sense that we want them to be bound when evaluating the construct.
|
List<FilterNode> |
getInFilters()
Return the set of IN filters for this group.
|
List<NamedSubqueryInclude> |
getNamedSubqueryIncludes()
Return only the
NamedSubqueryInclude child nodes in this group. |
QueryOptimizerEnum |
getQueryOptimizer()
Return the
QueryOptimizerEnum that is in effect for this
JoinGroupNode . |
List<IReorderableNode> |
getReorderableChildren() |
Set<IVariable<?>> |
getRequiredBound(StaticAnalysis sa)
Return the variables used in the node that *must* be bound prior to
evaluating the node.
|
int |
getRequiredStatementPatternCount()
Return the #of required statement patterns (does not include those
flagged as OPTIONAL).
|
List<ServiceNode> |
getServiceNodes()
Return only the
ServiceNode child nodes in this group. |
int |
getStatementPatternCount()
Return the #of statement patterns.
|
List<StatementPatternNode> |
getStatementPatterns()
Return only the statement pattern child nodes in this group.
|
boolean |
isMinus()
Return
true iff this is a join group representing a SPARQL
MINUS operator. |
boolean |
isOptional()
Return whether or not this is an join with "optional" semantics.
|
boolean |
isSubgroupOfALPNode()
Returns the property
Annotations#IS_SUBGROUP_OF_ALP_NODE of this
JoinGroupNode . |
void |
setContext(TermNode context)
Set the context for a GroupGraphPattern.
|
void |
setMinus(boolean minus) |
void |
setOptional(boolean optional) |
void |
setSubgroupOfALPNode(boolean isSubgroup) |
getChildren, getJoinVars, getProjectInVars, setJoinVars, setProjectInVars
addArg, addArg, addChild, clone, getAttachedJoinFilters, getChildren, isEmpty, iterator, removeArg, removeChild, replaceWith, setArg, setAttachedJoinFilters, size, toString
getParent, getParentGraphPatternGroup, getParentJoinGroup, setParent
getQueryHints, toString
addExplainHint, getExplainHints, getQueryHint, getQueryHint, getQueryHintAsBoolean, getQueryHintAsBoolean, getQueryHintAsInteger, replaceAllWith, setQueryHint, setQueryHints
addArgIfAbsent, annotations, annotationsEqual, argIterator, args, arity, clearProperty, copyAll, get, getProperty, indexOf, setArgs, setId, setProperty, setUnboundProperty, toArray, toArray
annotationsEqual, annotationsToString, annotationsToString, annotationValueToString, checkArgs, equals, getEvaluationContext, getId, getProperty, getRequiredProperty, hashCode, indent, isController, mutation, shortenName, toShortString
finalize, getClass, notify, notifyAll, wait, wait, wait
getAttachedJoinFilters, setAttachedJoinFilters
toString
annotations, argIterator, args, arity, clone, get, getEvaluationContext, getId, getProperty, getRequiredProperty, isController, setProperty, toArray, toArray, toShortString, toString
getProperty
getParent, getParentGraphPatternGroup, getParentJoinGroup, setParent
public JoinGroupNode(JoinGroupNode op)
com.bigdata.bop.BOpUtility#deepCopy(FilterNode)
.
Note: There is a nasty potential for a conflict here. This constructor is part
of the deep copy semantics. The JoinGroupNode(IGroupMemberNode child)
This means that the following code DOES NOT create a nested structure of a JoinGroupNode in a JoinGroupNode.
new JoinGroupNode(new JoinGroupNode); // COPY CONSTRUCTOR PATTERN.
Instead you MUST do this incrementally
final JoinGroupNode parent = new JoinGroupNode();
parent.addChild(new JoinGroupNode());
and if you need to add things to the child, then the pattern becomes:
final JoinGroupNode parent = new JoinGroupNode();
final JoinGroupNode child1 = new JoinGroupNode()
parent.addChild(child1);
child1.addChild(...);
public JoinGroupNode(BOp[] args, Map<String,Object> anns)
public JoinGroupNode()
public JoinGroupNode(IGroupMemberNode child)
public JoinGroupNode(boolean optional)
public JoinGroupNode(boolean optional, IGroupMemberNode child)
optional
- true
iff the group is optional.child
- The initial child.public JoinGroupNode(TermNode context, IGroupMemberNode child)
context
- The variable or constant for the GRAPH group.child
- The initial child.public void setContext(TermNode context)
context
- The context (may be null
).public TermNode getContext()
Overridden to return the context associated with this
JoinGroupNode
if it is defined and otherwise read up the parent
chain.
getContext
in interface IGroupMemberNode
getContext
in class GroupMemberNodeBase<IGroupMemberNode>
null
if there is no graph pattern
dominating this node.public final boolean isOptional()
IJoinNode
public final void setOptional(boolean optional)
public final boolean isMinus()
IJoinNode
true
iff this is a join group representing a SPARQL
MINUS operator.public void setMinus(boolean minus)
public final boolean isSubgroupOfALPNode()
Annotations#IS_SUBGROUP_OF_ALP_NODE
of this
JoinGroupNode
.public final void setSubgroupOfALPNode(boolean isSubgroup)
public final QueryOptimizerEnum getQueryOptimizer()
QueryOptimizerEnum
that is in effect for this
JoinGroupNode
. This will be the value specified through
QueryHints.OPTIMIZER
and otherwise the default value given by
QueryHints.DEFAULT_OPTIMIZER
.public List<StatementPatternNode> getStatementPatterns()
public int getStatementPatternCount()
public int getRequiredStatementPatternCount()
public List<ServiceNode> getServiceNodes()
ServiceNode
child nodes in this group.public List<NamedSubqueryInclude> getNamedSubqueryIncludes()
NamedSubqueryInclude
child nodes in this group.public List<AssignmentNode> getAssignments()
LET x:= expr
or (expr AS ?x)
nodes
in this group (these are modeled in exactly the same way by the
AST AssignmentNode
).
Note: AssignmentNode
s MUST NOT be reordered. They MUST be
evaluated left-to-right in the order given in the original query.
public List<FilterNode> getAllFiltersInGroup()
public List<FilterNode> getInFilters()
(Replace
DataSetJoin with an "inline" access path.)
public List<IReorderableNode> getReorderableChildren()
public Set<IVariable<?>> getRequiredBound(StaticAnalysis sa)
IVariableBindingRequirements
IVariableBindingRequirements#getRequiredBound()
interface cannot be satisified, the query may still be valid and return
results (for the SPARQL 1.1 service example mentioned above, it may not,
for the FILTER it may).
The set of these variables must be disjoint from
IVariableBindingRequirements#getRequiredUnound()
.public Set<IVariable<?>> getDesiredBound(StaticAnalysis sa)
IVariableBindingRequirements
IVariableBindingRequirements.getRequiredBound(StaticAnalysis)
.Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.