public Object invoke() {
        try {
            return method.invoke(self, parameters);
        } catch (Exception ex) {
            throw new PatternException("Exception during invocation of `" + self.getClass() + "#" + method.getName() + "`", ex);
        }
    }