org.objectweb.medor.optim.jorm
Class JormLeafRewriter
java.lang.Object
|
+--org.objectweb.medor.optim.lib.BasicRule
|
+--org.objectweb.medor.optim.jorm.JormRule
|
+--org.objectweb.medor.optim.jorm.JormLeafRewriter
- All Implemented Interfaces:
- LeafRewriter, RewriteRule
- Direct Known Subclasses:
- RdbJormLeafRewriter
- public abstract class JormLeafRewriter
- extends JormRule
- implements LeafRewriter
- Author:
- S. Chassande-Barrioz
Method Summary |
abstract QueryTreeField |
addPrimitiveElement(QueryLeaf neo,
PrimitiveElement pe,
JormExtent extent)
|
protected void |
addReference(NameDef nd,
PNameField pnf,
QueryNode qt,
QueryLeaf specificQL,
JormExtent extent)
|
abstract boolean |
canRewrite(QueryLeaf ql)
It returns true is the QueryLeaf can be rewrite by this LeafRewriter. |
protected abstract QueryLeaf |
createQueryLeaf(JormExtent extent)
|
QueryTreeField |
getField(QueryLeaf neo,
PrimitiveElement pe,
JormExtent extent)
|
protected java.lang.String |
getFieldName(java.lang.String prefix,
java.lang.String nodeName)
|
protected java.lang.String |
getShortFieldName(java.lang.String fn)
|
QueryTree |
rewrite(QueryLeaf ql)
It rewrites the QueryLeaf into a QueryTree. |
QueryTree |
rewrite(QueryTree qt,
QueryNode parent)
This method applies a single rule. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
JormLeafRewriter
public JormLeafRewriter(java.lang.String suffix)
canRewrite
public abstract boolean canRewrite(QueryLeaf ql)
- Description copied from interface:
LeafRewriter
- It returns true is the QueryLeaf can be rewrite by this LeafRewriter.
- Specified by:
canRewrite
in interface LeafRewriter
rewrite
public QueryTree rewrite(QueryTree qt,
QueryNode parent)
throws MedorException
- Description copied from interface:
RewriteRule
- This method applies a single rule.
It is typically called by the
QueryRewriter for applying the entire rewriting process.
- Specified by:
rewrite
in interface RewriteRule
- Parameters:
qt
- the QueryTree to be rewrittenparent
- the parent QueryNode for which modification of propagated
field, if they are replaced in the qt, should be done.
- Returns:
- the rewritten QueryTree
- Throws:
MedorException
rewrite
public QueryTree rewrite(QueryLeaf ql)
throws MedorException
- Description copied from interface:
LeafRewriter
- It rewrites the QueryLeaf into a QueryTree.
- Specified by:
rewrite
in interface LeafRewriter
MedorException
createQueryLeaf
protected abstract QueryLeaf createQueryLeaf(JormExtent extent)
throws MedorException
MedorException
addPrimitiveElement
public abstract QueryTreeField addPrimitiveElement(QueryLeaf neo,
PrimitiveElement pe,
JormExtent extent)
throws MedorException
MedorException
getField
public QueryTreeField getField(QueryLeaf neo,
PrimitiveElement pe,
JormExtent extent)
throws MedorException
MedorException
addReference
protected void addReference(NameDef nd,
PNameField pnf,
QueryNode qt,
QueryLeaf specificQL,
JormExtent extent)
throws MedorException
MedorException
getFieldName
protected java.lang.String getFieldName(java.lang.String prefix,
java.lang.String nodeName)
getShortFieldName
protected java.lang.String getShortFieldName(java.lang.String fn)