com.bigdata.rdf.sparql.ast.IGroupNode Maven / Gradle / Ivy
package com.bigdata.rdf.sparql.ast;
/**
* A type of query node that groups a set of query nodes together. This is the
* interface used by the {@link UnionNode} and {@link JoinGroupNode} query
* nodes.
*/
public interface IGroupNode extends
IGroupMemberNode, Iterable {
/**
* Add a child to this group. Child can be a statement pattern, a filter, or
* another group.
*
* @return this
*/
IGroupNode addChild(final E child);
/**
* Remove a child from this group.
*
* @return this
*/
IGroupNode removeChild(final E child);
/**
* Return true
iff the group is empty.
*/
boolean isEmpty();
/**
* Return the #of children which are direct members of the group.
*/
int size();
// /**
// * Return whether or not this is an optional group. Optional groups may or
// * may not produce variable bindings, but will not prune incoming solutions
// * based on whether or not they bind. Optional groups might be composed of a
// * single statement pattern, a single statement pattern with filters, or a
// * more complex join that could include subgroups.
// */
// boolean isOptional();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy