VelPropertyGet getter = super.getPropertyGet(obj, identifier, i);
/** * Get a property getting strategy that will box the end result with any return value annotations on the property getter * * @param obj Object on which a property is being retrieved * @param identifier Property identifier * @param info Current template info * @return A return value boxing property getter */ @Override public final VelPropertyGet getPropertyGet(Object obj, String identifier, Info info) throws Exception { final AnnotatedValueHelper valueHelper = AnnotatedValueHelperFactory.getValueHelper(obj, CLASS_RESOLVER); VelPropertyGet getter = super.getPropertyGet(valueHelper.unbox(), identifier, info); if (getter == null) { return null; } log.debug("Getting introspector method for getter: {}", getter.getMethodName()); Method refMethod = lookupMethod(getter.getMethodName(), valueHelper, EMPTY_ARRAY, info); log.debug("got method: {}", refMethod); if (refMethod == null) { return getter; } Collection<Annotation> annotations = getMethodAnnotations(refMethod); log.debug("Got return annotations: {}", annotations); if (annotations.isEmpty()) { return getter; } return new AnnotationBoxingPropertyGet(getter, annotations); }