Class MemberCacheUtils
java.lang.Object
io.pebbletemplates.pebble.attributes.MemberCacheUtils
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ConcurrentHashMap
<MemberCacheUtils.MemberCacheKey, Member> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) Member
cacheMember
(Object instance, String attributeName, Class<?>[] argumentTypes, EvaluationContextImpl context, String filename, int lineNumber) private Method
findMethod
(Object object, Class<?> clazz, String name, Class<?>[] requiredTypes, String filename, int lineNumber, EvaluationOptions evaluationOptions) Finds an appropriate method by comparing if parameter types are compatible.getCandidates
(Class<?> clazz, String name, Object[] requiredTypes) (package private) Member
private boolean
isCompatibleType
(Class<?> type1, Class<?> type2) private Member
reflect
(Object object, String attributeName, Class<?>[] parameterTypes, String filename, int lineNumber, EvaluationOptions evaluationOptions) Performs the actual reflection to obtain a "Member" from a class.private void
verifyUnsafeMethod
(String filename, int lineNumber, EvaluationOptions evaluationOptions, Object object, Method method) private Class
<?> Performs a widening conversion (primitive to boxed type)
-
Field Details
-
memberCache
-
-
Constructor Details
-
MemberCacheUtils
MemberCacheUtils()
-
-
Method Details
-
getMember
-
cacheMember
-
reflect
private Member reflect(Object object, String attributeName, Class<?>[] parameterTypes, String filename, int lineNumber, EvaluationOptions evaluationOptions) Performs the actual reflection to obtain a "Member" from a class. -
findMethod
private Method findMethod(Object object, Class<?> clazz, String name, Class<?>[] requiredTypes, 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(String filename, int lineNumber, EvaluationOptions evaluationOptions, Object object, Method method) -
widen
Performs a widening conversion (primitive to boxed type) -
getCandidates
-
isCompatibleType
-