code: @Override
      JSONObject toJson() {
          JSONObject ret = super.toJson();
          ret.put("operation",operation);
          if (arguments.size() > 0) {
              JSONArray args = new JSONArray();
              for (Object arg : arguments) {
                  args.add(serializeArgumentToJson(arg));
              }
              ret.put("arguments",args);
          }
          return ret;
      }
docs: {@inheritDoc}