示例#1
0
    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
      if ("getCmdText".equals(method.getName())) {
        return cmd.getCmdText();
      }
      if ("setCmdText".equals(method.getName())) {
        if (args.length > 0) cmd.setCmdText((String) args[0]);
        return (Void.TYPE);
      }
      if ("execute".equals(method.getName())) {
        if (args.length > 0) {
          if (log.isDebugEnabled()) {
            log.debug("Stack before:");
            outStackInLog();
            log.debug("Context:");
            outContextInLog();

            StringBuilder outStr = new StringBuilder();

            log.debug("Arguments:");

            for (Object iArgs : args) {
              outStr.append(iArgs);
              outStr.append(";  ");
            }

            log.debug(outStr);
          }

          cmd.execute((String) args[0]); // Результат реально отработавшей функции.

          if (log.isDebugEnabled()) {
            log.debug("Stack After:");
            outStackInLog();
          }
        }
        return Void.TYPE;
      }

      return null; // To change body of implemented methods use File | Settings | File Templates.
    }