Package io.microsphere.lang
Interface DelegatingWrapper
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description java.lang.ObjectgetDelegate()Get the delegatedefault booleanisWrapperFor(java.lang.Class<?> type)Returns true if this either extends or implements the type argument or is directly or indirectly a wrapper for an object that does.default <T> Tunwrap(java.lang.Class<T> type)Returns an object of the given class to allow access to non-standard methods, or standard methods not exposed by the proxy.
-
-
-
Method Detail
-
getDelegate
java.lang.Object getDelegate()
Get the delegate- Returns:
- the delegate
-
unwrap
default <T> T unwrap(java.lang.Class<T> type) throws java.lang.IllegalArgumentExceptionDescription copied from interface:WrapperReturns an object of the given class to allow access to non-standard methods, or standard methods not exposed by the proxy.If the receiver extends or implements the type then the result is the receiver or a proxy for the receiver. If the receiver is a wrapper and the wrapped object extends or implements the type then the result is the wrapped object or a proxy for the wrapped object. Otherwise return the result of calling
unwraprecursively on the wrapped object or a proxy for that result. If the receiver is not a wrapper and does not implement the type, then anIllegalArgumentExceptionis thrown.
-
isWrapperFor
default boolean isWrapperFor(java.lang.Class<?> type)
Description copied from interface:WrapperReturns true if this either extends or implements the type argument or is directly or indirectly a wrapper for an object that does. Returns false otherwise. If this extends or implements the type then return true, else if this is a wrapper then return the result of recursively callingisWrapperForon the wrapped object. If this does not implement the type and is not a wrapper, return false. This method should be implemented as a low-cost operation compared tounwrapso that callers can use this method to avoid expensiveunwrapcalls that may fail. If this method returns true then callingunwrapwith the same argument should succeed.- Specified by:
isWrapperForin interfaceWrapper- Parameters:
type- the wrapped type- Returns:
- true if this extends or implements the type or directly or indirectly wraps an object that does
-
-