edu.wpi.cs.dsrg.xmldb.xat.component.operatorfactory
Class OperatorBuilder

java.lang.Object
  |
  +--edu.wpi.cs.dsrg.xmldb.xat.component.operatorfactory.OperatorBuilder
Direct Known Subclasses:
PersistentOperatorBuilder, StreamOperatorBuilder

public abstract class OperatorBuilder
extends java.lang.Object

 Abstract base class for all operator builders.  A handle to a
 subclass of OperatorBuilder is obtained from the appropriate OperatorFactory using
 OperatorFactory.newOperatorBuilder();
 The OperatorBuilder is responsible for instantiating operators and returning handles to
 the appropriate interface

 When adding methods to the builder to create new operators, they should be made abstract iff
 the stream and nonstream logical semantics are different.  In most cases they will be.  Note:
 newOperator methods cannot just be added to one builder or another, but rather all builders must be able
 to provide that method.  This is because the outside only has a handle to this abstract base class, not 
 any individual subclass.   
 


Field Summary
protected static OperatorBuilder builder
           
 
Constructor Summary
protected OperatorBuilder()
          OperatorBuilder constructor comment.
 
Method Summary
 Aggregate newAggregate(XATNode node)
          Create a new Aggregate
 CartesianProduct newCartesianProduct(XATNode node)
          Create a new CartesianProduct
 Distinct newDistinct(XATNode node)
          Create a new Distinct
 Expose newExpose(XATNode node)
          Create a new Expose This doesnt really have a stream equivalent so it will be implemented here
 FOR newFor(XATNode node)
          Create a new FOR This doesnt really have a stream equivalent so it will be implemented here
 FOR newFor(XATNode node, XATTree tree)
          Create a new FOR This doesnt really have a stream equivalent so it will be implemented here
 FunArith newFunArith(XATNode node)
          Create a new FunctionArith This doesnt really have a stream equivalent so it will be implemented here
 Function newFunction(XATNode node)
          Create a new Function
 GroupBy newGroupBy(XATNode node)
          Insert the method's description here.
 LeftOuterJoin newLeftOuterJoin(XATNode node, Expression exp)
          Create a new LeftOuterJoin
 Merge newMerge(XATNode node)
          Create a new Merge This doesnt really have a stream equivalent so it will be implemented here
 NameColumn newNameColumn(XATNode node)
          Create a new NameColumn
 NavCollection newNavCollection(XATNode node)
          Create a new NavCollection operator
 NavUnnest newNavUnnest(XATNode node)
          Create a new NavCollection operator
 OrderBy newOrderBy(XATNode node)
          Create a new OrderBy
 Project newProject(XATNode node)
          Create a new Project
 Select newSelect(XATNode node, Expression exp)
          Create a new Select
 Source newSource(XATNode node)
          Create a new Source
 Tagger newTagger(XATNode node, Pattern pattern)
          Create a new Tagger
 XMLUnion newXMLUnion(XATNode node)
          Create a new XMLUnion
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

builder

protected static OperatorBuilder builder
Constructor Detail

OperatorBuilder

protected OperatorBuilder()
OperatorBuilder constructor comment.
Method Detail

newAggregate

public Aggregate newAggregate(XATNode node)
Create a new Aggregate
Parameters:
node - XATNode
Returns:
Aggregate

newCartesianProduct

public CartesianProduct newCartesianProduct(XATNode node)
Create a new CartesianProduct
Parameters:
node - XATNode
Returns:
CartesianProduct

newDistinct

public Distinct newDistinct(XATNode node)
Create a new Distinct
Parameters:
node - XATNode
Returns:
Distinct

newExpose

public Expose newExpose(XATNode node)
Create a new Expose This doesnt really have a stream equivalent so it will be implemented here
Parameters:
node - XATNode
Returns:
Expose

newFor

public FOR newFor(XATNode node)
Create a new FOR This doesnt really have a stream equivalent so it will be implemented here
Parameters:
node - XATNode
Returns:
FOR

newFor

public FOR newFor(XATNode node,
                  XATTree tree)
Create a new FOR This doesnt really have a stream equivalent so it will be implemented here
Parameters:
node - XATNode
tree - XATTree
Returns:
FOR

newFunArith

public FunArith newFunArith(XATNode node)
Create a new FunctionArith This doesnt really have a stream equivalent so it will be implemented here
Parameters:
node - XATNode
Returns:
FunArith

newFunction

public Function newFunction(XATNode node)
Create a new Function
Parameters:
node - edu.wpi.cs.dsrg.xmldb.xat.common.xatnode.XATNode
Returns:
edu.wpi.cs.dsrg.xmldb.xat.common.operator.specialoperator.function.Function

newGroupBy

public GroupBy newGroupBy(XATNode node)
Insert the method's description here.
Parameters:
node - edu.wpi.cs.dsrg.xmldb.xat.common.xatnode.XATNode
Returns:
edu.wpi.cs.dsrg.xmldb.xat.common.operator.sqloperator.GroupBy

newLeftOuterJoin

public LeftOuterJoin newLeftOuterJoin(XATNode node,
                                      Expression exp)
Create a new LeftOuterJoin
Parameters:
node - XATNode
exp - Expression
Returns:
LeftOuterJoin

newMerge

public Merge newMerge(XATNode node)
Create a new Merge This doesnt really have a stream equivalent so it will be implemented here
Parameters:
node - XATNode
Returns:
Merge

newNameColumn

public NameColumn newNameColumn(XATNode node)
Create a new NameColumn
Parameters:
node - XATNode
Returns:
NameColumn

newNavCollection

public NavCollection newNavCollection(XATNode node)
Create a new NavCollection operator
Parameters:
node - edu.wpi.cs.dsrg.xmldb.xat.common.xatnode.XATNode
Returns:
edu.wpi.cs.dsrg.xmldb.xat.common.operator.xmloperator.NavCollection

newNavUnnest

public NavUnnest newNavUnnest(XATNode node)
Create a new NavCollection operator
Parameters:
XATNode - node the XATNode to associate with this operator
Returns:
edu.wpi.cs.dsrg.xmldb.xat.common.operator.xmloperator.NavUnnest

newOrderBy

public OrderBy newOrderBy(XATNode node)
Create a new OrderBy
Parameters:
node - XATNode
Returns:
OrderBy

newProject

public Project newProject(XATNode node)
Create a new Project
Parameters:
node - XATNode
Returns:
Project

newSelect

public Select newSelect(XATNode node,
                        Expression exp)
Create a new Select
Parameters:
node - edu.wpi.cs.dsrg.xmldb.xat.common.xatnode.XATNode
Returns:
edu.wpi.cs.dsrg.xmldb.xat.common.operator.sqloperator.Select

newSource

public Source newSource(XATNode node)
Create a new Source
Parameters:
node - XATNode
Returns:
Source

newTagger

public Tagger newTagger(XATNode node,
                        Pattern pattern)
Create a new Tagger
Parameters:
node - edu.wpi.cs.dsrg.xmldb.xat.common.xatnode.XATNode
pattern - Pattern
Returns:
edu.wpi.cs.dsrg.xmldb.xat.common.operator.xmloperator.Tagger

newXMLUnion

public XMLUnion newXMLUnion(XATNode node)
Create a new XMLUnion
Parameters:
node - XATNode
Returns:
XMLUnion