@Override public Class<? extends RequestContext> resolveRequestContext(String operation) { return getNext().resolveRequestContext(operation); }
@Override public Method resolveDomainMethod(String operation) { /* * The validator has already determined the mapping from the RequsetContext * method to a domain method signature. We'll reuse this calculation instead * of iterating over all methods. */ String domainDescriptor = deobfuscator.getDomainMethodDescriptor(operation); if (domainDescriptor == null) { return die(null, "No domain method descriptor is mapped to operation %s", operation); } Class<?>[] domainArgs = getArgumentTypes(domainDescriptor); Class<? extends RequestContext> requestContext = getTop().resolveRequestContext(operation); Class<?> serviceImplementation = getTop().resolveServiceClass(requestContext); // Request<FooProxy> someMethod(int a, double b, FooProxy c); Method requestContextMethod = getTop().resolveRequestContextMethod(operation); Throwable ex; try { return serviceImplementation.getMethod(requestContextMethod.getName(), domainArgs); } catch (SecurityException e) { ex = e; } catch (NoSuchMethodException e) { ex = e; } return die(ex, "Could not find method in implementation %s matching descriptor %s for operation %s", serviceImplementation.getCanonicalName(), domainDescriptor, operation); }
Class<? extends RequestContext> requestContext = service.resolveRequestContext(operation); Object serviceInstance = service.createServiceInstance(requestContext); args.add(0, serviceInstance);
@Override public Method resolveRequestContextMethod(String operation) { Class<?> searchIn = getTop().resolveRequestContext(operation); String methodName = deobfuscator.getRequestContextMethodName(operation); String descriptor = deobfuscator.getRequestContextMethodDescriptor(operation); Class<?>[] params = getArgumentTypes(descriptor); try { return searchIn.getMethod(methodName, params); } catch (NoSuchMethodException ex) { return report("Could not locate %s operation %s", RequestContext.class.getSimpleName(), operation); } }
@Override public Method resolveDomainMethod(String operation) { /* * The validator has already determined the mapping from the RequsetContext * method to a domain method signature. We'll reuse this calculation instead * of iterating over all methods. */ String domainDescriptor = deobfuscator.getDomainMethodDescriptor(operation); if (domainDescriptor == null) { return die(null, "No domain method descriptor is mapped to operation %s", operation); } Class<?>[] domainArgs = getArgumentTypes(domainDescriptor); Class<? extends RequestContext> requestContext = getTop().resolveRequestContext(operation); Class<?> serviceImplementation = getTop().resolveServiceClass(requestContext); // Request<FooProxy> someMethod(int a, double b, FooProxy c); Method requestContextMethod = getTop().resolveRequestContextMethod(operation); Throwable ex; try { return serviceImplementation.getMethod(requestContextMethod.getName(), domainArgs); } catch (SecurityException e) { ex = e; } catch (NoSuchMethodException e) { ex = e; } return die(ex, "Could not find method in implementation %s matching descriptor %s for operation %s", serviceImplementation.getCanonicalName(), domainDescriptor, operation); }
@Override public Class<? extends RequestContext> resolveRequestContext(String operation) { return getNext().resolveRequestContext(operation); }
@Override public Method resolveDomainMethod(String operation) { /* * The validator has already determined the mapping from the RequsetContext * method to a domain method signature. We'll reuse this calculation instead * of iterating over all methods. */ String domainDescriptor = deobfuscator.getDomainMethodDescriptor(operation); if (domainDescriptor == null) { return die(null, "No domain method descriptor is mapped to operation %s", operation); } Class<?>[] domainArgs = getArgumentTypes(domainDescriptor); Class<? extends RequestContext> requestContext = getTop().resolveRequestContext(operation); Class<?> serviceImplementation = getTop().resolveServiceClass(requestContext); // Request<FooProxy> someMethod(int a, double b, FooProxy c); Method requestContextMethod = getTop().resolveRequestContextMethod(operation); Throwable ex; try { return serviceImplementation.getMethod(requestContextMethod.getName(), domainArgs); } catch (SecurityException e) { ex = e; } catch (NoSuchMethodException e) { ex = e; } return die(ex, "Could not find method in implementation %s matching descriptor %s for operation %s", serviceImplementation.getCanonicalName(), domainDescriptor, operation); }
@Override public Class<? extends RequestContext> resolveRequestContext(String operation) { return getNext().resolveRequestContext(operation); }
@Override public Method resolveDomainMethod(String operation) { /* * The validator has already determined the mapping from the RequsetContext * method to a domain method signature. We'll reuse this calculation instead * of iterating over all methods. */ String domainDescriptor = deobfuscator.getDomainMethodDescriptor(operation); if (domainDescriptor == null) { return die(null, "No domain method descriptor is mapped to operation %s", operation); } Class<?>[] domainArgs = getArgumentTypes(domainDescriptor); Class<? extends RequestContext> requestContext = getTop().resolveRequestContext(operation); Class<?> serviceImplementation = getTop().resolveServiceClass(requestContext); // Request<FooProxy> someMethod(int a, double b, FooProxy c); Method requestContextMethod = getTop().resolveRequestContextMethod(operation); Throwable ex; try { return serviceImplementation.getMethod(requestContextMethod.getName(), domainArgs); } catch (SecurityException e) { ex = e; } catch (NoSuchMethodException e) { ex = e; } return die(ex, "Could not find method in implementation %s matching descriptor %s for operation %s", serviceImplementation.getCanonicalName(), domainDescriptor, operation); }
@Override public Class<? extends RequestContext> resolveRequestContext(String operation) { return getNext().resolveRequestContext(operation); }
Class<? extends RequestContext> requestContext = service.resolveRequestContext(operation); Object serviceInstance = service.createServiceInstance(requestContext); args.add(0, serviceInstance);
@Override public Method resolveRequestContextMethod(String operation) { Class<?> searchIn = getTop().resolveRequestContext(operation); String methodName = deobfuscator.getRequestContextMethodName(operation); String descriptor = deobfuscator.getRequestContextMethodDescriptor(operation); Class<?>[] params = getArgumentTypes(descriptor); try { return searchIn.getMethod(methodName, params); } catch (NoSuchMethodException ex) { return report("Could not locate %s operation %s", RequestContext.class.getSimpleName(), operation); } }
Class<? extends RequestContext> requestContext = service.resolveRequestContext(operation); Object serviceInstance = service.createServiceInstance(requestContext); args.add(0, serviceInstance);
@Override public Method resolveRequestContextMethod(String operation) { Class<?> searchIn = getTop().resolveRequestContext(operation); String methodName = deobfuscator.getRequestContextMethodName(operation); String descriptor = deobfuscator.getRequestContextMethodDescriptor(operation); Class<?>[] params = getArgumentTypes(descriptor); try { return searchIn.getMethod(methodName, params); } catch (NoSuchMethodException ex) { return report("Could not locate %s operation %s", RequestContext.class.getSimpleName(), operation); } }
Class<? extends RequestContext> requestContext = service.resolveRequestContext(operation); Object serviceInstance = service.createServiceInstance(requestContext); args.add(0, serviceInstance);
@Override public Method resolveRequestContextMethod(String operation) { Class<?> searchIn = getTop().resolveRequestContext(operation); String methodName = deobfuscator.getRequestContextMethodName(operation); String descriptor = deobfuscator.getRequestContextMethodDescriptor(operation); Class<?>[] params = getArgumentTypes(descriptor); try { return searchIn.getMethod(methodName, params); } catch (NoSuchMethodException ex) { return report("Could not locate %s operation %s", RequestContext.class.getSimpleName(), operation); } }