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.cache
Class CoherenceCacheHelper

java.lang.Object
  extended by oracle.eclipselink.coherence.integrated.internal.cache.CoherenceCacheHelper


public abstract class CoherenceCacheHelper
extends java.lang.Object

Purpose: This class contains a collection of functionality that is used internally by the integration.

Since:
Oracle TopLink 11g (11.1.1.0.0)
Author:
gyorke, djclarke

Field Summary
protected static CoherenceAdaptor coherenceAdaptor
           
protected static java.lang.ThreadLocal<ComposeIdentityMap> composeIdentityMap
           

 

Constructor Summary
CoherenceCacheHelper()
           

 

Method Summary
protected static DatabaseRecord composeDatabaseRecord(java.lang.Object[] record)
           
static java.lang.Object composeEntity(java.lang.Object key, java.lang.Object object, ClassDescriptor descriptor, org.eclipse.persistence.internal.sessions.AbstractSession session, boolean inCacheStore, boolean shouldTranslatePKs)
           
static java.lang.Object composeStub(ForeignReferenceMapping mapping, java.lang.Object referencePKs, org.eclipse.persistence.internal.sessions.AbstractSession session)
           
private static void createCacheIndex(DatabaseMapping mapping, com.tangosol.net.NamedCache cache, ClassDescriptor descriptor, Session session)
           
static com.tangosol.util.InvocableMap.EntryProcessor createConditionalPutForOptLocking(ClassDescriptor descriptor, VersionLockingPolicy policy, java.lang.Object original, java.lang.Object objectToPut)
           
static com.tangosol.util.InvocableMap.EntryProcessor createConditionalPutWithOptLocking(ClassDescriptor descriptor, VersionLockingPolicy policy, java.lang.Object original, java.lang.Object objectToPut)
           
static com.tangosol.util.InvocableMap.EntryProcessor createConditionalRemoveForOptLocking(ClassDescriptor descriptor, VersionLockingPolicy policy, java.lang.Object original)
           
static Wrapper createEntityWrapper(java.lang.Class wrapperClass)
           
static Wrapper createEntityWrapper(ClassDescriptor descriptor, java.lang.ClassLoader classLoader)
           
static java.lang.Object[] decomposeDatabaseRecord(org.eclipse.persistence.internal.sessions.AbstractRecord record, java.util.Collection<org.eclipse.persistence.internal.helper.DatabaseField> keyFields)
           
static java.lang.Object decomposeEntity(java.lang.Object entity, ClassDescriptor descriptor, org.eclipse.persistence.internal.sessions.AbstractSession session, boolean translatePKs)
           
static java.lang.Class defineWrapperClass(java.lang.Class wrappedClass, java.lang.ClassLoader classLoader)
          defines a wrapper class if not already defined
static java.lang.Class defineWrapperClass(ClassDescriptor descriptor, java.lang.ClassLoader classLoader)
          defines a wrapper class if not already defined
static java.util.Map<java.lang.Object,java.lang.Object> getAllFromCoherenceWithCohKey(java.lang.Object[] pkList, ClassDescriptor descriptor, org.eclipse.persistence.internal.sessions.AbstractSession interceptedSession, com.tangosol.net.NamedCache namedCache, boolean shouldTranslatePKs)
           
static java.lang.String getCacheName(ClassDescriptor descriptor)
          Helper method to retrieve the cache name to use for the provided descriptor.
static java.lang.Object getCoherenceKey(ClassDescriptor descriptor, java.lang.Object key, org.eclipse.persistence.internal.sessions.AbstractSession interceptedSession, boolean shouldTranslatePKs)
          Convert the internal EclipseLink primary key Vector into a single identity object being either a basic value or an Id class.
static ClassDescriptor getDescriptor(java.lang.String cacheName, Session session, boolean requiresCacheInterceptor)
          Lookup in the provided session a ClassDescriptor which is configured to use the provided cache name.
static java.lang.Object getFromCoherence(ClassDescriptor descriptor, org.eclipse.persistence.internal.sessions.AbstractSession interceptedSession, com.tangosol.net.NamedCache namedCache, java.lang.Object cacheId, boolean shouldTranslatePKs)
           
static java.lang.Object getFromCoherenceWithCohKey(ClassDescriptor descriptor, org.eclipse.persistence.internal.sessions.AbstractSession interceptedSession, com.tangosol.net.NamedCache namedCache, java.lang.Object cohKey, boolean shouldTranslatePKs)
           
protected static java.util.List<org.eclipse.persistence.internal.helper.DatabaseField> getKeyFields(DatabaseMapping mapping)
           
static com.tangosol.net.NamedCache getNamedCache(ClassDescriptor descriptor, Session session)
          Lookup the Coherence NamedCache for a provided descriptor.
static com.tangosol.net.NamedCache getNamedCache(java.lang.Class entityClass, Session session)
           
static java.lang.String getWrapperClassName(java.lang.Class javaClass)
          Helper method to determine that wrapper class name that will be used within the Coherence cache.
static java.lang.String getWrapperClassName(java.lang.String javaClassName)
          Helper method to determine that wrapper class name that will be used within the Coherence cache.
static void initializeForDescriptor(ClassDescriptor descriptor, com.tangosol.net.NamedCache cache, Session session)
           
static void putIntoCoherence(ClassDescriptor descriptor, org.eclipse.persistence.internal.sessions.AbstractSession interceptedSession, com.tangosol.net.NamedCache namedCache, java.lang.Object key, java.lang.Object original, boolean forRead, boolean translatePKs)
           
static void removeFromCoherence(ClassDescriptor descriptor, org.eclipse.persistence.internal.sessions.AbstractSession interceptedSession, com.tangosol.net.NamedCache namedCache, java.lang.Object key, java.lang.Object object, boolean shouldTranslatePKs)
           
static java.lang.Object[] translateToCoherencePKs(java.lang.Object[] eclipseLinkKeys, ForeignReferenceMapping mapping, CMPPolicy cmpPolicy, org.eclipse.persistence.internal.sessions.AbstractSession session)
          Translates From Grid id's to internal EclipseLink ids
static java.lang.Object[] translateToEclipseLinkPKs(java.lang.Object[] cohKeys, ForeignReferenceMapping mapping, CMPPolicy cmpPolicy, org.eclipse.persistence.internal.sessions.AbstractSession session)
          Translates From Grid id's to internal EclipseLink ids
static void updateRelationship(ClassDescriptor descriptor, org.eclipse.persistence.internal.sessions.AbstractSession interceptedSession, com.tangosol.net.NamedCache namedCache, java.lang.Object primaryKey, java.lang.Object attributeValue, java.lang.Object original, ForeignReferenceMapping mapping, boolean translatePKs)
          This method is used to notify coherence that a relationship has been updated.
static boolean usesCoherenceInterceptor(ClassDescriptor descriptor)
          Helper method that determines if a provided descriptor is configured with a CoherenceInterceptor.
static Wrapper wrap(java.lang.Object entity)
           

 

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

 

Field Detail

composeIdentityMap

protected static final java.lang.ThreadLocal<ComposeIdentityMap> composeIdentityMap

coherenceAdaptor

protected static CoherenceAdaptor coherenceAdaptor

Constructor Detail

CoherenceCacheHelper

public CoherenceCacheHelper()

Method Detail

composeStub

public static java.lang.Object composeStub(ForeignReferenceMapping mapping,
                                           java.lang.Object referencePKs,
                                           org.eclipse.persistence.internal.sessions.AbstractSession session)

getFromCoherence

public static java.lang.Object getFromCoherence(ClassDescriptor descriptor,
                                                org.eclipse.persistence.internal.sessions.AbstractSession interceptedSession,
                                                com.tangosol.net.NamedCache namedCache,
                                                java.lang.Object cacheId,
                                                boolean shouldTranslatePKs)

getAllFromCoherenceWithCohKey

public static java.util.Map<java.lang.Object,java.lang.Object> getAllFromCoherenceWithCohKey(java.lang.Object[] pkList,
                                                                                             ClassDescriptor descriptor,
                                                                                             org.eclipse.persistence.internal.sessions.AbstractSession interceptedSession,
                                                                                             com.tangosol.net.NamedCache namedCache,
                                                                                             boolean shouldTranslatePKs)

getFromCoherenceWithCohKey

public static java.lang.Object getFromCoherenceWithCohKey(ClassDescriptor descriptor,
                                                          org.eclipse.persistence.internal.sessions.AbstractSession interceptedSession,
                                                          com.tangosol.net.NamedCache namedCache,
                                                          java.lang.Object cohKey,
                                                          boolean shouldTranslatePKs)

createCacheIndex

private static void createCacheIndex(DatabaseMapping mapping,
                                     com.tangosol.net.NamedCache cache,
                                     ClassDescriptor descriptor,
                                     Session session)

createConditionalPutForOptLocking

public static com.tangosol.util.InvocableMap.EntryProcessor createConditionalPutForOptLocking(ClassDescriptor descriptor,
                                                                                              VersionLockingPolicy policy,
                                                                                              java.lang.Object original,
                                                                                              java.lang.Object objectToPut)

createConditionalPutWithOptLocking

public static com.tangosol.util.InvocableMap.EntryProcessor createConditionalPutWithOptLocking(ClassDescriptor descriptor,
                                                                                               VersionLockingPolicy policy,
                                                                                               java.lang.Object original,
                                                                                               java.lang.Object objectToPut)

createConditionalRemoveForOptLocking

public static com.tangosol.util.InvocableMap.EntryProcessor createConditionalRemoveForOptLocking(ClassDescriptor descriptor,
                                                                                                 VersionLockingPolicy policy,
                                                                                                 java.lang.Object original)

usesCoherenceInterceptor

public static boolean usesCoherenceInterceptor(ClassDescriptor descriptor)
Helper method that determines if a provided descriptor is configured with a CoherenceInterceptor.

updateRelationship

public static void updateRelationship(ClassDescriptor descriptor,
                                      org.eclipse.persistence.internal.sessions.AbstractSession interceptedSession,
                                      com.tangosol.net.NamedCache namedCache,
                                      java.lang.Object primaryKey,
                                      java.lang.Object attributeValue,
                                      java.lang.Object original,
                                      ForeignReferenceMapping mapping,
                                      boolean translatePKs)
This method is used to notify coherence that a relationship has been updated.

getCacheName

public static java.lang.String getCacheName(ClassDescriptor descriptor)
Helper method to retrieve the cache name to use for the provided descriptor. The name is either provided using a descriptor property or if that is not provided then the descriptor's alias is used. In JPA a descriptor's alias is the entity's name defaulted to be the unqualified class name.
See Also:
InternalProperties.CACHE_NAME

getWrapperClassName

public static java.lang.String getWrapperClassName(java.lang.Class javaClass)
Helper method to determine that wrapper class name that will be used within the Coherence cache.
Parameters:
javaClassName - fully qualified java class name including package.
Returns:

getWrapperClassName

public static java.lang.String getWrapperClassName(java.lang.String javaClassName)
Helper method to determine that wrapper class name that will be used within the Coherence cache.
Parameters:
javaClassName - fully qualified java class name including package.
Returns:

getNamedCache

public static com.tangosol.net.NamedCache getNamedCache(ClassDescriptor descriptor,
                                                        Session session)
Lookup the Coherence NamedCache for a provided descriptor.
Parameters:
descriptor -
session - used to access the default class-loader for the lookup
Returns:

getDescriptor

public static ClassDescriptor getDescriptor(java.lang.String cacheName,
                                            Session session,
                                            boolean requiresCacheInterceptor)
Lookup in the provided session a ClassDescriptor which is configured to use the provided cache name. This lookup involves matching either the cache name provided in a descriptor property or the descriptor's alias as well as ensuring that a CoherenceInterceptor is configured on the descriptor if the requiresCacheInterceptor param is true.

This method is used to initialize the descriptor used in the standalone and integrated CacheLoader/Store implementations.

Parameters:
cacheName - Provided Coherence NamedCache name
session - the EclipseLink session in which to lookup the descriptor
requiresCacheInterceptor - indicating if the descriptor must have a CoherenceInterceptor configured
Returns:
Descriptor configured to use provided Coherence cache name
Throws:
IntegrationException - if no descriptor is configured to use the provided cache name
See Also:
IntegrationException.UNABLE_TO_FIND_DESCRIPTOR

getNamedCache

public static com.tangosol.net.NamedCache getNamedCache(java.lang.Class entityClass,
                                                        Session session)

initializeForDescriptor

public static void initializeForDescriptor(ClassDescriptor descriptor,
                                           com.tangosol.net.NamedCache cache,
                                           Session session)

putIntoCoherence

public static void putIntoCoherence(ClassDescriptor descriptor,
                                    org.eclipse.persistence.internal.sessions.AbstractSession interceptedSession,
                                    com.tangosol.net.NamedCache namedCache,
                                    java.lang.Object key,
                                    java.lang.Object original,
                                    boolean forRead,
                                    boolean translatePKs)

composeEntity

public static java.lang.Object composeEntity(java.lang.Object key,
                                             java.lang.Object object,
                                             ClassDescriptor descriptor,
                                             org.eclipse.persistence.internal.sessions.AbstractSession session,
                                             boolean inCacheStore,
                                             boolean shouldTranslatePKs)

decomposeEntity

public static java.lang.Object decomposeEntity(java.lang.Object entity,
                                               ClassDescriptor descriptor,
                                               org.eclipse.persistence.internal.sessions.AbstractSession session,
                                               boolean translatePKs)

defineWrapperClass

public static java.lang.Class defineWrapperClass(ClassDescriptor descriptor,
                                                 java.lang.ClassLoader classLoader)
defines a wrapper class if not already defined
Parameters:
descriptor -
classLoader -
Returns:
wrapper class

defineWrapperClass

public static java.lang.Class defineWrapperClass(java.lang.Class wrappedClass,
                                                 java.lang.ClassLoader classLoader)
defines a wrapper class if not already defined
Parameters:
wrappedClass -
classLoader -
Returns:
wrapper class

createEntityWrapper

public static Wrapper createEntityWrapper(ClassDescriptor descriptor,
                                          java.lang.ClassLoader classLoader)

createEntityWrapper

public static Wrapper createEntityWrapper(java.lang.Class wrapperClass)

wrap

public static Wrapper wrap(java.lang.Object entity)

removeFromCoherence

public static void removeFromCoherence(ClassDescriptor descriptor,
                                       org.eclipse.persistence.internal.sessions.AbstractSession interceptedSession,
                                       com.tangosol.net.NamedCache namedCache,
                                       java.lang.Object key,
                                       java.lang.Object object,
                                       boolean shouldTranslatePKs)

translateToEclipseLinkPKs

public static java.lang.Object[] translateToEclipseLinkPKs(java.lang.Object[] cohKeys,
                                                           ForeignReferenceMapping mapping,
                                                           CMPPolicy cmpPolicy,
                                                           org.eclipse.persistence.internal.sessions.AbstractSession session)
Translates From Grid id's to internal EclipseLink ids

translateToCoherencePKs

public static java.lang.Object[] translateToCoherencePKs(java.lang.Object[] eclipseLinkKeys,
                                                         ForeignReferenceMapping mapping,
                                                         CMPPolicy cmpPolicy,
                                                         org.eclipse.persistence.internal.sessions.AbstractSession session)
Translates From Grid id's to internal EclipseLink ids

getCoherenceKey

public static java.lang.Object getCoherenceKey(ClassDescriptor descriptor,
                                               java.lang.Object key,
                                               org.eclipse.persistence.internal.sessions.AbstractSession interceptedSession,
                                               boolean shouldTranslatePKs)
Convert the internal EclipseLink primary key Vector into a single identity object being either a basic value or an Id class.
Parameters:
descriptor -
key -
Returns:
the key to be used for storage in Coherence

getKeyFields

protected static java.util.List<org.eclipse.persistence.internal.helper.DatabaseField> getKeyFields(DatabaseMapping mapping)

decomposeDatabaseRecord

public static java.lang.Object[] decomposeDatabaseRecord(org.eclipse.persistence.internal.sessions.AbstractRecord record,
                                                         java.util.Collection<org.eclipse.persistence.internal.helper.DatabaseField> keyFields)

composeDatabaseRecord

protected static DatabaseRecord composeDatabaseRecord(java.lang.Object[] record)

Skip navigation links

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