uk.ac.bbk.dcs.automed.qproc.optimise
Class Optimiser

java.lang.Object
  extended by uk.ac.bbk.dcs.automed.qproc.optimise.Optimiser
Direct Known Subclasses:
ChooseOptimiser, CollectionOperatorReorganiser, CollectionSimplification, CommonSubexpressionElimination, ComprehensionDistributor, ComprehensionHeadSimplifier, ComprehensionHeadSimplifierUndo, ConstantInPatternOptimiser, EmptyJoinOptimiser, EqualityFilterOptimiser, NestingOptimiser, RelationSKJEliminator, SQLWrapperSKJOptimiser, UnnestOptimiser

public abstract class Optimiser
extends java.lang.Object

Class Optimiser abstracts the functionality of optimisers.

Author:
Lucas Zamboulis

Field Summary
protected  java.util.logging.Logger logger
           
private  QueryOptimisationProvider qop
           
protected  Schema[] targets
           
 
Constructor Summary
Optimiser(QueryOptimisationProvider qop)
           
 
Method Summary
 boolean getValueBasedOptimisation()
           
 boolean optimise(ASG g, QueryProcessorConfiguration qpc)
           
 boolean optimise(ASG g, Schema[] automedTargets, QueryProcessorConfiguration qpc)
           
abstract  boolean optimise(Cell c, QueryProcessorConfiguration qpc)
           
 void setValueBasedOptimisation(boolean value)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected java.util.logging.Logger logger

qop

private QueryOptimisationProvider qop

targets

protected Schema[] targets
Constructor Detail

Optimiser

public Optimiser(QueryOptimisationProvider qop)
Method Detail

optimise

public boolean optimise(ASG g,
                        QueryProcessorConfiguration qpc)
Parameters:
g - ASG to be optimised
Returns:
true if optimiser had any effect

optimise

public boolean optimise(ASG g,
                        Schema[] automedTargets,
                        QueryProcessorConfiguration qpc)
Parameters:
g - ASG to be optimised
targets - AutoMed-level target schemas
Returns:
true if optimiser had any effect

optimise

public abstract boolean optimise(Cell c,
                                 QueryProcessorConfiguration qpc)
                          throws QueryOptimisationException
Throws:
QueryOptimisationException

setValueBasedOptimisation

public void setValueBasedOptimisation(boolean value)

getValueBasedOptimisation

public boolean getValueBasedOptimisation()