/** * Process an object. * @param object The object. * @param targetcl If not null, the traverser should make sure that the result object is compatible with the class loader, * e.g. by cloning the object using the class loaded from the target class loader. * @return The processed object. */ public Object process(Object object, Type type, List<ITraverseProcessor> processors, Traverser traverser, Map<Object, Object> traversed, boolean clone, ClassLoader targetcl, Object context) { IEncodingContext ec = (IEncodingContext) context; traversed.put(object, traversed.size()); ec.writeClass(MethodInfo.class); MethodInfo mi = (MethodInfo) object; ec.writeVarInt(2); ec.writeString("name"); traverser.doTraverse(mi.getName(), String.class, traversed, processors, clone, targetcl, context); ec.writeString("ParameterTypes"); Class<?>[] paramclasses = mi.getParameterTypes(targetcl); traverser.doTraverse(paramclasses, null, traversed, processors, clone, targetcl, context); return object; } }
/** * Encode the object. */ public Object encode(Object object, Class<?> clazz, List<ITraverseProcessor> processors, Traverser traverser, Map<Object, Object> traversed, boolean clone, IEncodingContext ec) { ec.writeBoolean(false); MethodInfo mi = (MethodInfo) object; ec.writeVarInt(2); ec.writeString("name"); traverser.traverse(mi.getName(), String.class, traversed, processors, clone, ec.getClassLoader(), ec); ec.writeString("parameterTypes"); Class<?>[] paramclasses = mi.getParameterTypes(ec.getClassLoader()); traverser.traverse(paramclasses, null, traversed, processors, clone, ec.getClassLoader(), ec); return object; }
/** * Encode the object. */ public Object encode(Object object, Class<?> clazz, List<ITraverseProcessor> processors, Traverser traverser, Map<Object, Object> traversed, boolean clone, EncodingContext ec) { ec.writeBoolean(false); MethodInfo mi = (MethodInfo) object; ec.writeVarInt(2); ec.writeString("name"); traverser.traverse(mi.getName(), String.class, traversed, processors, clone, ec.getClassLoader(), ec); ec.writeString("parameterTypes"); Class<?>[] paramclasses = mi.getParameterTypes(ec.getClassLoader()); traverser.traverse(paramclasses, null, traversed, processors, clone, ec.getClassLoader(), ec); return object; }
Class<?>[] ptypes = methodmapper.getParameterTypes(classloader); ArrayMemberValue vals = new ArrayMemberValue(new ClassMemberValue(constpool), constpool); MemberValue[] mvals = new MemberValue[methodmapper.getParameterTypeInfos().length];
Class<?>[] ptypes = methodmapper.getParameterTypes(classloader); ArrayMemberValue vals = new ArrayMemberValue(new ClassMemberValue(constpool), constpool); MemberValue[] mvals = new MemberValue[methodmapper.getParameterTypeInfos().length];
final Method m = SReflect.getMethod(agent.getClass(), ((MethodInfo)infos[j]).getName(), ((MethodInfo)infos[j]).getParameterTypes(getClassLoader())); if(info.isMultiple())
final Method m = SReflect.getMethod(agent.getClass(), infos[j].getMethodInfo().getName(), infos[j].getMethodInfo().getParameterTypes(component.getClassLoader()));