declare namespace org {
namespace springframework {
namespace data {
namespace mongodb {
/**
* {@link MethodInterceptor} implementation looking up and invoking an alternative target method having
* {@link ClientSession} as its first argument. This allows seamless integration with the existing code base.
*
* The {@link MethodInterceptor} is aware of methods on {@code MongoCollection} that my return new instances of itself
* like (eg. {@link com.mongodb.reactivestreams.client.MongoCollection#withWriteConcern(WriteConcern)} and decorate them
* if not already proxied.
* @param Type of the actual Mongo Database.
* @param Type of the actual Mongo Collection.
* @author Christoph Strobl
* @author Mark Paluch
* @since 2.1
*/
// @ts-ignore
class SessionAwareMethodInterceptor extends java.lang.Object {
/**
* Create a new SessionAwareMethodInterceptor for given target.
* @param session the {#link ClientSession} to be used on invocation.
* @param target the original target object.
* @param databaseType the MongoDB database type
* @param databaseDecorator a {#link ClientSessionOperator} used to create the proxy for an imperative / reactive
* {@code MongoDatabase}.
* @param collectionType the MongoDB collection type.
* @param collectionDecorator a {#link ClientSessionOperator} used to create the proxy for an imperative / reactive
* {@code MongoCollection}.
* @param target object type.
*/
// @ts-ignore
constructor(session: ClientSession, target: T, sessionType: java.lang.Class, databaseType: java.lang.Class, databaseDecorator: org.springframework.data.mongodb.SessionAwareMethodInterceptor.ClientSessionOperator, collectionType: java.lang.Class, collectionDecorator: org.springframework.data.mongodb.SessionAwareMethodInterceptor.ClientSessionOperator)
// @ts-ignore
public invoke(methodInvocation: MethodInvocation): any
// @ts-ignore
decorate(target: java.lang.Object | any): any
}
}
}
}
}