Skip navigation links
oracle.eclipselink.coherence.integrated.internal.querying
Class EclipseLinkFilterFactory
java.lang.Object
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. |
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 |
expressionCache
protected static java.util.Map<Expression,com.tangosol.util.Filter> expressionCache
EclipseLinkFilterFactory
public EclipseLinkFilterFactory()
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