public void dump_json(PrintStream fp,String indent){
  fp.printf("%s{ %s,\n",indent,json_field("type",type));
  fp.printf("%s  %s,\n",indent,json_field("link",link));
  fp.printf("%s  %s,\n",indent,json_field("signature",method.getSignature()));
  SourceLocationTag slt=(stmt == null) ? SootUtils.getMethodLocation(method) : getSourceLocation(stmt);
  if (slt != null) {
    fp.printf("%s  %s",indent,json_field("src-loc"));
    fp.printf("{ %s, %s},\n",json_field("class",slt.getClz()),json_field("line",slt.getLine()));
  }
  fp.printf("%s  %s,\n",indent,json_field("syscalls",syscalls));
  fp.printf("%s  %s,\n",indent,json_field("calls",calls));
  if ((contents != null) && (contents.length > 0)) {
    fp.printf("%s  %s,\n",indent,json_field("score",score));
    fp.printf("%s  %s [\n",indent,json_field("contents"));
    String delim="";
    for (    CallChainInfo cci : contents) {
      fp.print(delim);
      delim=",\n";
      cci.dump_json(fp,indent + "  ");
    }
    fp.printf("\n%s]}",indent);
  }
 else {
    fp.printf("%s  %s\n",indent,json_field("score",score));
    fp.printf("%s}",indent);
  }
}

public void dump_json ( PrintStream fp , String indent ) { fp . printf ( "%s{ %s,\n" , indent , json_field ( "type" , type ) ) ; fp . printf ( "%s  %s,\n" , indent , json_field ( "link" , link ) ) ; fp . printf ( "%s  %s,\n" , indent , json_field ( "signature" , method . getSignature ( ) ) ) ; SourceLocationTag slt = ( stmt == null ) ? SootUtils . getMethodLocation ( method ) : getSourceLocation ( stmt ) ; if ( slt != null ) { fp . printf ( "%s  %s" , indent , json_field ( "src-loc" ) ) ; fp . printf ( "{ %s, %s},\n" , json_field ( "class" , slt . getClz ( ) ) , json_field ( "line" , slt . getLine ( ) ) ) ; } fp . printf ( "%s  %s,\n" , indent , json_field ( "syscalls" , syscalls ) ) ; fp . printf ( "%s  %s,\n" , indent , json_field ( "calls" , calls ) ) ; if ( ( contents != null ) && ( contents . length > 0 ) ) { fp . printf ( "%s  %s,\n" , indent , json_field ( "score" , score ) ) ; fp . printf ( "%s  %s [\n" , indent , json_field ( "contents" ) ) ; String delim = "" ; for ( CallChainInfo cci : contents ) { fp . print ( delim ) ; delim = ",\n" ; cci . dump_json ( fp , indent + "  " ) ; } fp . printf ( "\n%s]}" , indent ) ; } else { fp . printf ( "%s  %s\n" , indent , json_field ( "score" , score ) ) ; fp . printf ( "%s}" , indent ) ; } }
dumps out the call chain in json format
