public JmxAttributeMetadata(Method method) { this(method.getAnnotation(ManagedAttribute.class)); String methodName = method.getName(); name = ReflectionUtil.extractFieldName(methodName); is = methodName.startsWith("is"); if (methodName.startsWith("set")) { useSetter = true; type = method.getParameterTypes()[0].getName(); } else if (methodName.startsWith("get") || is) { // How do we read from/write to this field using reflection? Class clazz = method.getDeclaringClass(); Method setterMethod = ReflectionUtil.findSetterForField(clazz, name); type = method.getReturnType().getName(); useSetter = setterMethod != null || !writable; } }
private void setTopDocs(HashMap<UUID, ClusteredTopDocs> topDocsResponses) { this.topDocsResponses = topDocsResponses; if (sort != null) { // reversing sort fields to FieldDocSortedHitQueue work properly for (SortField sf : sort.getSort()) { boolean reverse = (Boolean) ReflectionUtil.getValue(sf, "reverse"); ReflectionUtil.setValue(sf, "reverse", !reverse); } hq = ISPNPriorityQueueFactory.getFieldDocSortedHitQueue( topDocsResponses.size(), sort.getSort()); } else hq = ISPNPriorityQueueFactory.getHitQueue(topDocsResponses.size()); // taking the first value of each queue for (ClusteredTopDocs ctp : topDocsResponses.values()) { if (ctp.hasNext()) hq.add(ctp.getNext()); } }
@SuppressWarnings("unchecked") protected void invokeInjectionMethod(Object o, Method m) { Class[] dependencies = m.getParameterTypes(); Annotation[][] parameterAnnotations = m.getParameterAnnotations(); Object[] params = new Object[dependencies.length]; if (getLog().isTraceEnabled()) getLog() .tracef( "Injecting dependencies for method [%s] on an instance of [%s].", m, o.getClass().getName()); for (int i = 0; i < dependencies.length; i++) { params[i] = getOrCreateComponent( dependencies[i], getComponentName(dependencies[i], parameterAnnotations, i)); } ReflectionUtil.invokeAccessibly(o, m, params); }
void invoke() { ReflectionUtil.invokeAccessibly(component.instance, method, null); }
public final void registerComponent(Object component, String name) { boolean nonVolatile = ReflectionUtil.isAnnotationPresent(component.getClass(), SurvivesRestarts.class); registerComponentInternal(component, name, nonVolatile); }