D
- Type of the actual Mongo Database.C
- Type of the actual Mongo Collection.public class SessionAwareMethodInterceptor<D,C> extends Object implements MethodInterceptor
MethodInterceptor
implementation looking up and invoking an alternative target method having
ClientSession
as its first argument. This allows seamless integration with the existing code base.
The MethodInterceptor
is aware of methods on MongoCollection
that my return new instances of itself
like (eg. MongoCollection.withWriteConcern(WriteConcern)
and decorate them
if not already proxied.Modifier and Type | Class and Description |
---|---|
static interface |
SessionAwareMethodInterceptor.ClientSessionOperator<T>
Represents an operation upon two operands of the same type, producing a result of the same type as the operands
accepting
ClientSession . |
Constructor and Description |
---|
SessionAwareMethodInterceptor(com.mongodb.session.ClientSession session,
T target,
Class<? extends com.mongodb.session.ClientSession> sessionType,
Class<D> databaseType,
SessionAwareMethodInterceptor.ClientSessionOperator<D> databaseDecorator,
Class<C> collectionType,
SessionAwareMethodInterceptor.ClientSessionOperator<C> collectionDecorator)
Create a new SessionAwareMethodInterceptor for given target.
|
Modifier and Type | Method and Description |
---|---|
protected Object |
decorate(Object target) |
Object |
invoke(MethodInvocation methodInvocation) |
public SessionAwareMethodInterceptor(com.mongodb.session.ClientSession session, T target, Class<? extends com.mongodb.session.ClientSession> sessionType, Class<D> databaseType, SessionAwareMethodInterceptor.ClientSessionOperator<D> databaseDecorator, Class<C> collectionType, SessionAwareMethodInterceptor.ClientSessionOperator<C> collectionDecorator)
T
- target object type.session
- the ClientSession
to be used on invocation.target
- the original target object.databaseType
- the MongoDB database typedatabaseDecorator
- a SessionAwareMethodInterceptor.ClientSessionOperator
used to create the proxy for an imperative / reactive
MongoDatabase
.collectionType
- the MongoDB collection type.collectionDecorator
- a SessionAwareMethodInterceptor.ClientSessionOperator
used to create the proxy for an imperative / reactive
MongoCollection
.@Nullable public Object invoke(MethodInvocation methodInvocation) throws Throwable
invoke
in interface MethodInterceptor
Throwable
Copyright © 2011–2020 Pivotal Software, Inc.. All rights reserved.