public MethodReflectValued(Object o, ReflectMethod m) { this.o = o; this.m = m; this.p = m.getParameters()[0]; }
void add(ReflectMethod method) { Integer size = method.getParameters().length; if(methods.containsKey(size)) { throw new IllegalStateException("Found duplicated method '" + method.getName() + "' with " + size + " args at '" + cls.getName() + "'"); } if(size > maxArgs) { maxArgs = size; } methods.put(size, method); }
public ElInstanceMethod(ReflectMethod m,Object instance) { this.m = m; this.size = m.getReflectedMethod().isVarArgs() ? VAR_ARGS : m.getParameters().length; this.instance = instance; }
protected void addExtraSetter(ReflectMethod setter) { if (null == extraSetters) { extraSetters = new LinkedHashMap<>(1); } extraSetters.put(setter.getParameters()[0].getType(), setter); }
public ElInstanceMethods add(ReflectMethod m) { if(!m.getName().equals(name)){ throw new IllegalArgumentException("Method name '" + m.getName() + "' must be '" + name + "'"); } if(m.getReflectedMethod().isVarArgs()){ defaultMethod = m; }else{ Integer i = m.getParameters().length; if(!methods().containsKey(i)){ methods().put(i, m); } } return this; }
private static OpenMBeanParameterInfo[] params(ReflectMethod rm) { final OpenMBeanParameterInfo[] params = new OpenMBeanParameterInfo[rm.getParameters().length]; for (int i=0;i<params.length;i++) { ReflectParameter p = rm.getParameters()[i]; params[i] = new OpenMBeanParameterInfoSupport(p.getName(), p.getName(), MBeanTypes.of(p.getType(),p.getGenericType())); } return params; }
@Override public ElMethod resolveMethod(Class<?> cls, String name, Object[] args) { ReflectClass rc = ReflectClass.of(cls); int len = args.length; for(ReflectMethod rm : rc.getMethods()){ if(rm.getName().equals(name) && rm.getParameters().length == len){ boolean ok = true; for(int i=0;i<len;i++){ Object v = args[i]; if(null != v && !rm.getParameters()[i].getType().isAssignableFrom(v.getClass())){ ok = false; break; } } if(ok){ return rm.isStatic() ? new ElStaticMethod(rm) : new ElInstanceMethod(rm); } } } return null; }
public ReflectDeleteEntityListener(Object inst, ReflectMethod m) { this.inst = inst; this.method = m; if(m.getParameters().length == 1) { this.transactional = false; ReflectParameter p = m.getParameters()[0]; if(p.getType().equals(Object.class)) { func = (e) -> m.invoke(inst, e.getId()); return; }else if(p.getType().equals(DeleteEntityEvent.class)) { func = (e) -> m.invoke(inst, e); return; } } else if(m.getParameters().length == 2) { this.transactional = true; ReflectParameter p0 = m.getParameters()[0]; ReflectParameter p1 = m.getParameters()[1]; if(p0.getType().equals(Object.class) && p1.getType().equals(TransactionStatus.class)) { func = (e) -> m.invoke(inst, e.getId(), e.getTransactionStatus()); return; } if(p0.getType().equals(DeleteEntityEvent.class) && p1.getType().equals(TransactionStatus.class)) { func = (e) -> m.invoke(inst, e, e.getTransactionStatus()); return; } } throw new IllegalArgumentException("Incorrect parameters in method '" + Reflection.fullQualifyName(m.getReflectedMethod()) + "' for 'DeleteEntity' event"); }
ReflectParameter p = method.getParameters()[i]; cargs[i] = JsConvert.convert(args[i], p.getType(), p.getGenericType());
}else { ReflectMethod m = bt.getReflectClass().getMethod("$"); if(null != m && m.getParameters().length == 1) { m.invoke(bean, Converts.convert(v, m.getParameters()[0].getType(), m.getParameters()[0].getGenericType(), context));
boolean withEntity = EntityEventWithWrapper.class.isAssignableFrom(eventType); if(m.getParameters().length == 1) { ReflectParameter p = m.getParameters()[0]; } else if(m.getParameters().length == 2) { this.transactional = true; ReflectParameter p0 = m.getParameters()[0]; ReflectParameter p1 = m.getParameters()[1];
if(m.getParameters().length == 0 && m.isAnnotationPresent(Destroy.class)) { try { m.invoke(bean, Arrays2.EMPTY_OBJECT_ARRAY);
ReflectMethod extraSetter = extraSetters.get(vtype); if(null != extraSetter) { ReflectParameter p = extraSetter.getParameters()[0]; value = Converts.convert(value, p.getType(), p.getGenericType(), context); extraSetter.invoke(bean, value); for(ReflectMethod extraSetter : extraSetters.values()) { try { ReflectParameter p = extraSetter.getParameters()[0]; value = Converts.convert(value, p.getType(), p.getGenericType(), context); extraSetter.invoke(bean, value);
ReflectClass rc = ReflectClass.of(bean.getClass()); for (ReflectMethod m : rc.getMethods()) { if (m.getParameters().length == 0 && m.isAnnotationPresent(Init.class)) { m.invoke(bean, Arrays2.EMPTY_OBJECT_ARRAY); init = true;
if(m.getParameters().length == 1) { Configurable.Nested nested = m.getAnnotation(Configurable.Nested.class); if(null != nested) {