Exemplo n.º 1
0
  public void clear() throws CoreException {
    ICPPUsingDirective[] directives = getUsingDirectives();
    for (ICPPUsingDirective ud : directives) {
      if (ud instanceof IPDOMNode) {
        ((IPDOMNode) ud).delete(null);
      }
    }
    setLastUsingDirective(0);

    // Remove the includes
    PDOMInclude include = getFirstInclude();
    while (include != null) {
      PDOMInclude nextInclude = include.getNextInIncludes();
      //			if (contextsRemoved != null && include.getPrevInIncludedByRecord() == 0) {
      //				contextsRemoved.add(include.getIncludesLocation());
      //			}
      include.delete();
      include = nextInclude;
    }
    setFirstInclude(null);

    // Delete all the macros in this file
    PDOMLinkage linkage = getLinkage();
    PDOMMacro macro = getFirstMacro();
    while (macro != null) {
      PDOMMacro nextMacro = macro.getNextMacro();
      macro.delete(linkage);
      macro = nextMacro;
    }
    setFirstMacro(null);

    // Delete all the names in this file
    ArrayList<PDOMName> names = new ArrayList<PDOMName>();
    PDOMName name = getFirstName();
    while (name != null) {
      names.add(name);
      linkage.onDeleteName(name);
      name = name.getNextInFile();
    }
    for (Iterator<PDOMName> iterator = names.iterator(); iterator.hasNext(); ) {
      name = iterator.next();
      name.delete();
    }
    setFirstName(null);

    // Delete all macro references
    ArrayList<PDOMMacroReferenceName> mrefs = new ArrayList<PDOMMacroReferenceName>();
    PDOMMacroReferenceName mref = getFirstMacroReference();
    while (mref != null) {
      mrefs.add(mref);
      mref = mref.getNextInFile();
    }
    for (PDOMMacroReferenceName m : mrefs) {
      m.delete();
    }
    setFirstMacroReference(null);
    setSourceReadTime(0);
    setTimestamp(-1);
  }