private Wrapper getWrapper(final int scopeIndex, final Wrapper[] wrappers, final List<Guard> guards, Object scope, String name, Class<?> aClass) {
try {
Method method = aClass.getDeclaredMethod(name, String.class);
method.setAccessible(true);
return new ReflectionWrapper(scopeIndex, wrappers, guards.toArray(new Guard[guards.size()]), method, null, this) {
@Override
public Object call(Object[] scopes) throws GuardException {
guardCall(scopes);
final Object scope1 = unwrap(scopes);
if (scope1 == null) return null;