@Override
  public void finished(TaskEvent taskEvent) {
    JCCompilationUnit jcc = (JCCompilationUnit) taskEvent.getCompilationUnit();

    if (taskEvent.getKind().equals(TaskEvent.Kind.ENTER)) {
      persistentify(jcc);
      //			out.println("########## FINISH ENTER\n\n\n"+jcc.toString());
    }
  }
  /*
   * 4 compilation phases
   *
   * PARSE
   * For events related to the parsing of a file.
   * ENTER
   * For events relating to elements being entered.
   *
   * ##################################################################
   * !!! Begins after ENTER phase, repeats ENTER phase when it ends !!!
   * ##################### ############################################
   * ANNOTATION_PROCESSING
   * For events relating to overall annotation processing.
   * ANNOTATION_PROCESSING_ROUND
   * For events relating to an individual annotation processing round.
   *
   * ANALYZE
   * For events relating to elements being analyzed for errors.
   * ------> DESUGAR HAPPENS BETWEEN THESE, SO AT GENERATE.START
   * GENERATE
   * For events relating to class files being generated.
   * ------> SOURCE CODE IS GENERATED AND DISAPEARED NOW
   *
   * This ones for some reason are not beeing called...
   *
   */
  @Override
  public void started(TaskEvent taskEvent) {
    JCCompilationUnit jcc = (JCCompilationUnit) taskEvent.getCompilationUnit();

    //		if (taskEvent.getKind().equals(TaskEvent.Kind.GENERATE)) {
    //			out.println("########## START ENTER\n\n\n"+jcc.toString());
    //			savingModdedSources(taskEvent);
    //		}
  }