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) MembercacheMember(Object instance, String attributeName, Class<?>[] argumentTypes, EvaluationContextImpl context, String filename, int lineNumber) private MethodfindMethod(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) Memberprivate booleanisCompatibleType(Class<?> type1, Class<?> type2) private Memberreflect(Object object, String attributeName, Class<?>[] parameterTypes, String filename, int lineNumber, EvaluationOptions evaluationOptions) Performs the actual reflection to obtain a "Member" from a class.private voidverifyUnsafeMethod(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
-