Exemplo n.º 1
0
    public String toString(final File srcFile) {
      StringBuffer sbuf = new StringBuffer();
      switch (reason) {
        case DIRECT_FLOW:
          sbuf.append("direct flow:\n");
          break;
        case INDIRECT_FLOW:
          sbuf.append("indirect flow:\n");
          break;
        case BOTH_FLOW:
          sbuf.append("direct and indirect flow:\n");
          break;
        case EXCEPTION:
          sbuf.append("flow due to exceptions:\n");
          break;
        case THREAD:
          sbuf.append("possibilistic or probabilistic flow:\n");
          break;
        case THREAD_DATA:
          sbuf.append("possibilistic flow:\n");
          break;
        case THREAD_ORDER:
          sbuf.append("probabilistic flow:\n");
          break;
        case THREAD_EXCEPTION:
          sbuf.append("possibilistic or probabilistic flow caused by exceptions:\n");
          break;
        default:
          sbuf.append("reason: " + reason + "\n");
      }

      sbuf.append("from '" + source.toString() + "' to '" + sink.toString() + "'\n");

      for (final SPos pos : chop) {
        sbuf.append(pos.toString() + "\t");
        final String code = pos.getSourceCode(srcFile);
        sbuf.append(code + "\n");
      }

      return sbuf.toString();
    }