/**
   * Adds the name of the newly created interface to the implements clause of each class selected
   * for the refactoring.
   */
  private void addInterfaceToClasses() {
    for (int i = 0; i < m_summaryList.size(); i++) {
      TypeSummary ts = (TypeSummary) m_summaryList.elementAt(i);
      FileSummary fileSummary = (FileSummary) ts.getParent();
      File file = fileSummary.getFile();
      ASTName interfaceName = new ASTName(0);

      String currentPackageName = ts.getPackageSummary().getName();
      /*
       *  If the interface package differs from the class package, then
       *  specify the interface package name
       */
      if ((m_packageName.length() > 0) && !(currentPackageName.equals(m_packageName))) {
        interfaceName.fromString(m_packageName + "." + m_interfaceName);
      } else {
        interfaceName.fromString(m_interfaceName);
      }
      m_complexTransform.clear();
      // Very Important so we don't re-apply the interface transforms
      m_complexTransform.add(new AddImplementedInterfaceTransform(interfaceName));

      if (!m_packageName.equals(currentPackageName)) {
        m_complexTransform.add(new AddImportTransform(interfaceName));
      }
      m_complexTransform.apply(file, new File(file.getAbsolutePath()));
    }
  }
 /**
  * Adds the type in a certain file
  *
  * @param summary the file summary
  * @param list the linked list to add to
  */
 private void add(FileSummary summary, LinkedList list) {
   Iterator iter = summary.getTypes();
   if (iter != null) {
     while (iter.hasNext()) {
       TypeSummary typeSummary = (TypeSummary) iter.next();
       if (isIncluded(typeSummary)) {
         list.add(typeSummary.getName());
       }
     }
   }
 }