Class MemberCacheUtils
- java.lang.Object
-
- io.pebbletemplates.pebble.attributes.MemberCacheUtils
-
class MemberCacheUtils extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
MemberCacheUtils.MemberCacheKey
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.ConcurrentHashMap<MemberCacheUtils.MemberCacheKey,java.lang.reflect.Member>
memberCache
-
Constructor Summary
Constructors Constructor Description MemberCacheUtils()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) java.lang.reflect.Member
cacheMember(java.lang.Object instance, java.lang.String attributeName, java.lang.Class<?>[] argumentTypes, EvaluationContextImpl context, java.lang.String filename, int lineNumber)
private java.lang.reflect.Method
findMethod(java.lang.Object object, java.lang.Class<?> clazz, java.lang.String name, java.lang.Class<?>[] requiredTypes, java.lang.String filename, int lineNumber, EvaluationOptions evaluationOptions)
Finds an appropriate method by comparing if parameter types are compatible.private java.util.List<java.lang.reflect.Method>
getCandidates(java.lang.Class<?> clazz, java.lang.String name, java.lang.Object[] requiredTypes)
(package private) java.lang.reflect.Member
getMember(java.lang.Object instance, java.lang.String attributeName, java.lang.Class<?>[] argumentTypes)
private boolean
isCompatibleType(java.lang.Class<?> type1, java.lang.Class<?> type2)
private java.lang.reflect.Member
reflect(java.lang.Object object, java.lang.String attributeName, java.lang.Class<?>[] parameterTypes, java.lang.String filename, int lineNumber, EvaluationOptions evaluationOptions)
Performs the actual reflection to obtain a "Member" from a class.private void
verifyUnsafeMethod(java.lang.String filename, int lineNumber, EvaluationOptions evaluationOptions, java.lang.Object object, java.lang.reflect.Method method)
private java.lang.Class<?>
widen(java.lang.Class<?> clazz)
Performs a widening conversion (primitive to boxed type)
-
-
-
Field Detail
-
memberCache
private final java.util.concurrent.ConcurrentHashMap<MemberCacheUtils.MemberCacheKey,java.lang.reflect.Member> memberCache
-
-
Method Detail
-
getMember
java.lang.reflect.Member getMember(java.lang.Object instance, java.lang.String attributeName, java.lang.Class<?>[] argumentTypes)
-
cacheMember
java.lang.reflect.Member cacheMember(java.lang.Object instance, java.lang.String attributeName, java.lang.Class<?>[] argumentTypes, EvaluationContextImpl context, java.lang.String filename, int lineNumber)
-
reflect
private java.lang.reflect.Member reflect(java.lang.Object object, java.lang.String attributeName, java.lang.Class<?>[] parameterTypes, java.lang.String filename, int lineNumber, EvaluationOptions evaluationOptions)
Performs the actual reflection to obtain a "Member" from a class.
-
findMethod
private java.lang.reflect.Method findMethod(java.lang.Object object, java.lang.Class<?> clazz, java.lang.String name, java.lang.Class<?>[] requiredTypes, java.lang.String filename, int lineNumber, EvaluationOptions evaluationOptions)
Finds an appropriate method by comparing if parameter types are compatible. This is more relaxed than class.getMethod.
-
verifyUnsafeMethod
private void verifyUnsafeMethod(java.lang.String filename, int lineNumber, EvaluationOptions evaluationOptions, java.lang.Object object, java.lang.reflect.Method method)
-
widen
private java.lang.Class<?> widen(java.lang.Class<?> clazz)
Performs a widening conversion (primitive to boxed type)
-
getCandidates
private java.util.List<java.lang.reflect.Method> getCandidates(java.lang.Class<?> clazz, java.lang.String name, java.lang.Object[] requiredTypes)
-
isCompatibleType
private boolean isCompatibleType(java.lang.Class<?> type1, java.lang.Class<?> type2)
-
-