Skip navigation links

Oracle Fusion Middleware Java API Reference for Oracle TopLink
11g Release 1 (11.1.1)

E28847-01


oracle.eclipselink.coherence.integrated.internal.querying
Class EclipseLinkFilterFactory

java.lang.Object
  extended by oracle.eclipselink.coherence.integrated.internal.querying.EclipseLinkFilterFactory

All Implemented Interfaces:
FilterFactory

public class EclipseLinkFilterFactory
extends java.lang.Object
implements FilterFactory

Purpose: This class is used to translate from the EclipseLink queries to the Coherence filters. This class attempts to maintain a cache of translated expressions to make the translation process faster. Using named queries will ensure the cache is leveraged. Setting the property (coherence.do-not-translate-queries) on your query will instruct the FilterFactory to not process the query and instead cause EclipseLink to execute the query.

Since:
Oracle TopLink 11g (11.1.1.0.0)
Author:
Gordon Yorke, Shaun Smith

Nested Class Summary
static class EclipseLinkFilterFactory.IsNotNull
          IsNotNull is equivalent to Coherence's IsNotNullFilter except that it provides support for a ValueExtractor instead of an explicit method name.
static class EclipseLinkFilterFactory.IsNull
          IsNull is equivalent to Coherence's IsNullFilter except that it provides support for a ValueExtractor instead of an explicit method name.
static class EclipseLinkFilterFactory.SubClassOf
          This filter is added to filter out superclasses that may be outside of the scope of a polymorphic query.

 

Field Summary
protected static java.util.Map<Expression,com.tangosol.util.Filter> expressionCache
           

 

Fields inherited from interface oracle.eclipselink.coherence.integrated.querying.FilterFactory
NO_FILTER

 

Constructor Summary
EclipseLinkFilterFactory()
           

 

Method Summary
protected  com.tangosol.util.Filter create(Expression expression, Record args, org.eclipse.persistence.internal.sessions.AbstractSession session)
           
 com.tangosol.util.Filter create(ObjectLevelReadQuery query, Record args, Session session)
          Given the query and the provided arguments translate this query into a Coherence Filter
 com.tangosol.util.InvocableMap.EntryAggregator createAggregator(org.eclipse.persistence.internal.queries.ReportItem item, ReportQuery query, Record args, org.eclipse.persistence.internal.sessions.AbstractSession session)
          Translates ReportQueryItem into an equivalent Coherence artifact
protected  com.tangosol.util.filter.AllFilter createAnd(org.eclipse.persistence.internal.expressions.LogicalExpression expression, Record args, org.eclipse.persistence.internal.sessions.AbstractSession session)
           
protected  com.tangosol.util.filter.BetweenFilter createBetween(org.eclipse.persistence.internal.expressions.FunctionExpression expression, org.eclipse.persistence.internal.sessions.AbstractSession session)
           
protected  com.tangosol.util.filter.EqualsFilter createEquals(org.eclipse.persistence.internal.expressions.RelationExpression expression, Record args, org.eclipse.persistence.internal.sessions.AbstractSession session)
           
protected  com.tangosol.util.filter.GreaterFilter createGreaterThan(org.eclipse.persistence.internal.expressions.RelationExpression expression, Record args, org.eclipse.persistence.internal.sessions.AbstractSession session)
           
protected  com.tangosol.util.filter.GreaterEqualsFilter createGreaterThanEquals(org.eclipse.persistence.internal.expressions.RelationExpression expression, Record args, org.eclipse.persistence.internal.sessions.AbstractSession session)
           
protected  com.tangosol.util.filter.InFilter createIn(org.eclipse.persistence.internal.expressions.RelationExpression expression, Record args, org.eclipse.persistence.internal.sessions.AbstractSession session)
           
protected  EclipseLinkFilterFactory.IsNull createIsNull(org.eclipse.persistence.internal.expressions.FunctionExpression expression, org.eclipse.persistence.internal.sessions.AbstractSession session)
           
protected  com.tangosol.util.filter.LessFilter createLessThan(org.eclipse.persistence.internal.expressions.RelationExpression expression, Record args, org.eclipse.persistence.internal.sessions.AbstractSession session)
           
protected  com.tangosol.util.filter.LessEqualsFilter createLessThanEquals(org.eclipse.persistence.internal.expressions.RelationExpression expression, Record args, org.eclipse.persistence.internal.sessions.AbstractSession session)
           
protected  com.tangosol.util.filter.LikeFilter createLike(org.eclipse.persistence.internal.expressions.FunctionExpression expression, Record args, org.eclipse.persistence.internal.sessions.AbstractSession session)
           
protected  com.tangosol.util.Filter createLogical(org.eclipse.persistence.internal.expressions.LogicalExpression expression, Record args, org.eclipse.persistence.internal.sessions.AbstractSession session)
           
protected  com.tangosol.util.filter.NotFilter createNotEquals(org.eclipse.persistence.internal.expressions.RelationExpression expression, Record args, org.eclipse.persistence.internal.sessions.AbstractSession session)
           
protected  EclipseLinkFilterFactory.IsNotNull createNotNull(org.eclipse.persistence.internal.expressions.FunctionExpression expression, org.eclipse.persistence.internal.sessions.AbstractSession session)
           
protected  com.tangosol.util.filter.AnyFilter createOr(org.eclipse.persistence.internal.expressions.LogicalExpression expression, Record args, org.eclipse.persistence.internal.sessions.AbstractSession session)
           
 FilterExtractor createValueExtractor(Expression expression, org.eclipse.persistence.internal.sessions.AbstractSession session)
          Create a value extractor that can be used on the grid.
 com.tangosol.util.InvocableMap.EntryProcessor createValueExtractor(org.eclipse.persistence.internal.queries.ReportItem item, ReportQuery query, Record args, org.eclipse.persistence.internal.sessions.AbstractSession session)
          Create a value Extraction to return the selection of the ReportQuery
private  void flattenAllFilters(java.util.List<com.tangosol.util.Filter> filters, com.tangosol.util.Filter filter)
           
private  void flattenOrFilters(java.util.List<com.tangosol.util.Filter> filters, com.tangosol.util.Filter filter)
           
protected  java.lang.Object getValue(Expression expression, Record args, org.eclipse.persistence.internal.sessions.AbstractSession session, java.lang.Class targetClass)
           

 

Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

 

Field Detail

expressionCache

protected static java.util.Map<Expression,com.tangosol.util.Filter> expressionCache

Constructor Detail

EclipseLinkFilterFactory

public EclipseLinkFilterFactory()

Method Detail

create

public com.tangosol.util.Filter create(ObjectLevelReadQuery query,
                                       Record args,
                                       Session session)
Description copied from interface: FilterFactory
Given the query and the provided arguments translate this query into a Coherence Filter
Specified by:
create in interface FilterFactory

create

protected com.tangosol.util.Filter create(Expression expression,
                                          Record args,
                                          org.eclipse.persistence.internal.sessions.AbstractSession session)

createLogical

protected com.tangosol.util.Filter createLogical(org.eclipse.persistence.internal.expressions.LogicalExpression expression,
                                                 Record args,
                                                 org.eclipse.persistence.internal.sessions.AbstractSession session)

createAnd

protected com.tangosol.util.filter.AllFilter createAnd(org.eclipse.persistence.internal.expressions.LogicalExpression expression,
                                                       Record args,
                                                       org.eclipse.persistence.internal.sessions.AbstractSession session)

flattenAllFilters

private void flattenAllFilters(java.util.List<com.tangosol.util.Filter> filters,
                               com.tangosol.util.Filter filter)

createOr

protected com.tangosol.util.filter.AnyFilter createOr(org.eclipse.persistence.internal.expressions.LogicalExpression expression,
                                                      Record args,
                                                      org.eclipse.persistence.internal.sessions.AbstractSession session)

flattenOrFilters

private void flattenOrFilters(java.util.List<com.tangosol.util.Filter> filters,
                              com.tangosol.util.Filter filter)

createIsNull

protected EclipseLinkFilterFactory.IsNull createIsNull(org.eclipse.persistence.internal.expressions.FunctionExpression expression,
                                                       org.eclipse.persistence.internal.sessions.AbstractSession session)

createNotNull

protected EclipseLinkFilterFactory.IsNotNull createNotNull(org.eclipse.persistence.internal.expressions.FunctionExpression expression,
                                                           org.eclipse.persistence.internal.sessions.AbstractSession session)

createBetween

protected com.tangosol.util.filter.BetweenFilter createBetween(org.eclipse.persistence.internal.expressions.FunctionExpression expression,
                                                               org.eclipse.persistence.internal.sessions.AbstractSession session)

createEquals

protected com.tangosol.util.filter.EqualsFilter createEquals(org.eclipse.persistence.internal.expressions.RelationExpression expression,
                                                             Record args,
                                                             org.eclipse.persistence.internal.sessions.AbstractSession session)

createNotEquals

protected com.tangosol.util.filter.NotFilter createNotEquals(org.eclipse.persistence.internal.expressions.RelationExpression expression,
                                                             Record args,
                                                             org.eclipse.persistence.internal.sessions.AbstractSession session)

createLessThan

protected com.tangosol.util.filter.LessFilter createLessThan(org.eclipse.persistence.internal.expressions.RelationExpression expression,
                                                             Record args,
                                                             org.eclipse.persistence.internal.sessions.AbstractSession session)

createLessThanEquals

protected com.tangosol.util.filter.LessEqualsFilter createLessThanEquals(org.eclipse.persistence.internal.expressions.RelationExpression expression,
                                                                         Record args,
                                                                         org.eclipse.persistence.internal.sessions.AbstractSession session)

createGreaterThan

protected com.tangosol.util.filter.GreaterFilter createGreaterThan(org.eclipse.persistence.internal.expressions.RelationExpression expression,
                                                                   Record args,
                                                                   org.eclipse.persistence.internal.sessions.AbstractSession session)

createGreaterThanEquals

protected com.tangosol.util.filter.GreaterEqualsFilter createGreaterThanEquals(org.eclipse.persistence.internal.expressions.RelationExpression expression,
                                                                               Record args,
                                                                               org.eclipse.persistence.internal.sessions.AbstractSession session)

createLike

protected com.tangosol.util.filter.LikeFilter createLike(org.eclipse.persistence.internal.expressions.FunctionExpression expression,
                                                         Record args,
                                                         org.eclipse.persistence.internal.sessions.AbstractSession session)

createIn

protected com.tangosol.util.filter.InFilter createIn(org.eclipse.persistence.internal.expressions.RelationExpression expression,
                                                     Record args,
                                                     org.eclipse.persistence.internal.sessions.AbstractSession session)

getValue

protected java.lang.Object getValue(Expression expression,
                                    Record args,
                                    org.eclipse.persistence.internal.sessions.AbstractSession session,
                                    java.lang.Class targetClass)

createValueExtractor

public FilterExtractor createValueExtractor(Expression expression,
                                            org.eclipse.persistence.internal.sessions.AbstractSession session)
Create a value extractor that can be used on the grid. For now this will assume field access on attributes directly on the reference class. TODO: Support multi-level expressions TODO: Support wrappers (Coherence externalization)
Specified by:
createValueExtractor in interface FilterFactory

createAggregator

public com.tangosol.util.InvocableMap.EntryAggregator createAggregator(org.eclipse.persistence.internal.queries.ReportItem item,
                                                                       ReportQuery query,
                                                                       Record args,
                                                                       org.eclipse.persistence.internal.sessions.AbstractSession session)
Translates ReportQueryItem into an equivalent Coherence artifact
Specified by:
createAggregator in interface FilterFactory

createValueExtractor

public com.tangosol.util.InvocableMap.EntryProcessor createValueExtractor(org.eclipse.persistence.internal.queries.ReportItem item,
                                                                          ReportQuery query,
                                                                          Record args,
                                                                          org.eclipse.persistence.internal.sessions.AbstractSession session)
Description copied from interface: FilterFactory
Create a value Extraction to return the selection of the ReportQuery
Specified by:
createValueExtractor in interface FilterFactory

Skip navigation links

Copyright © 1998, 2012, Oracle. All Rights Reserved.