org.objectweb.medor.optim.jorm

Class JormLeafRewriteRule

Implemented Interfaces:
LeafRewriteRule, RewriteRule

public class JormLeafRewriteRule
extends BasicRule
implements LeafRewriteRule

This class represents the rule to transform QueryLeaves into the corresponding QueryLeaf on the data store (for example into an RdbQueryLeaf).

Nested Class Summary

Nested classes/interfaces inherited from class org.objectweb.medor.optim.lib.BasicRule

BasicRule.ModifiedExpression

Field Summary

Fields inherited from class org.objectweb.medor.optim.lib.BasicRule

debug, log

Constructor Summary

JormLeafRewriteRule()
JormLeafRewriteRule(LeafRewriter lr)

Method Summary

void
addLeafRewriter(LeafRewriter lr)
LeafRewriter
getLeafRewriter(QueryLeaf ql)
Collection
getLeafRewriters()
protected Map
getLeafUsers(QueryTree qt)
protected void
getLeafUsers(QueryTree qt, Map m, ArrayList al)
It fetches the QueryTree nodes which are 'parents' of QueryLeaf nodes.
Logger
getLogger()
LoggerFactory
getLoggerFactory()
void
removeLeafRewriter(LeafRewriter lr)
QueryTree
rewrite(QueryTree qt, QueryNode _parent)
void
setLogger(Logger logger)
void
setLoggerFactory(LoggerFactory loggerFactory)

Methods inherited from class org.objectweb.medor.optim.lib.BasicRule

replaceUsage, rewrite

Constructor Details

JormLeafRewriteRule

public JormLeafRewriteRule()


JormLeafRewriteRule

public JormLeafRewriteRule(LeafRewriter lr)

Method Details

addLeafRewriter

public void addLeafRewriter(LeafRewriter lr)
Specified by:
addLeafRewriter in interface LeafRewriteRule


getLeafRewriter

public LeafRewriter getLeafRewriter(QueryLeaf ql)
Specified by:
getLeafRewriter in interface LeafRewriteRule


getLeafRewriters

public Collection getLeafRewriters()
Specified by:
getLeafRewriters in interface LeafRewriteRule


getLeafUsers

protected Map getLeafUsers(QueryTree qt)
            throws MedorException


getLeafUsers

protected void getLeafUsers(QueryTree qt,
                            Map m,
                            ArrayList al)
            throws MedorException
It fetches the QueryTree nodes which are 'parents' of QueryLeaf nodes.

Parameters:
qt - is the queryTree to analyze.
m - is the current result of the recusrive evaluation. key = a queryTree Value = the users of the querytree key : ArrayList( FieldOperand | PropagatedField | NestedField )
al - is the list of the visited queryTree. (It does not contain the 'qt' parameter)


getLogger

public Logger getLogger()


getLoggerFactory

public LoggerFactory getLoggerFactory()


removeLeafRewriter

public void removeLeafRewriter(LeafRewriter lr)
Specified by:
removeLeafRewriter in interface LeafRewriteRule


rewrite

public QueryTree rewrite(QueryTree qt,
                         QueryNode _parent)
            throws MedorException
Specified by:
rewrite in interface RewriteRule


setLogger

public void setLogger(Logger logger)


setLoggerFactory

public void setLoggerFactory(LoggerFactory loggerFactory)