public void doDRA() throws HandlerException {
   super.doDRA();
   if (originalParentMapper.size() > 0) {
     doRelocationFixups();
   }
   doCA();
 }
  public void applyNamingConventions() throws HandlerException {
    super.applyNamingConventions();

    NamingConventions namingConventions = helper.getNamingConventions();
    namingConventions.processDirectory(rripRoot);

    Iterator sit = rripRoot.unsortedIterator();
    while (sit.hasNext()) {
      ISO9660Directory dir = (ISO9660Directory) sit.next();
      namingConventions.processDirectory(dir);
    }
  }
  void doDir(ISO9660Directory dir, HashMap parentMapper) throws HandlerException {
    Integer location = new Integer(helper.getCurrentLocation());

    if (originalParentMapper.containsKey(dir)) {
      // Remember directory location for PL Location Fixup
      parentLocations.put(originalParentMapper.get(dir), location);
    } else if (dir.isMoved()) {
      // Remember directory location for CL Location Fixup
      childLocations.put(dir, location);
    }

    super.doDir(dir, parentMapper);
  }
  public void relocateDirectories() {
    if (rripRoot.deepLevelCount() >= 8) {
      parentLocationFixups = new HashMap();
      parentLocations = new HashMap();
      childLocationFixups = new HashMap();
      childLocations = new HashMap();
      rripRoot.setMovedDirectoryStore();

      if (RockRidgeNamingConventions.HIDE_MOVED_DIRECTORIES_STORE
          && !rripRoot.getMovedDirectoriesStore().getName().startsWith(".")) {
        // Hide Moved Directories Store for Rock Ridge
        rripRoot
            .getMovedDirectoriesStore()
            .setName("." + ISO9660RootDirectory.MOVED_DIRECTORIES_STORE_NAME);
      }
    }

    super.relocateDirectories();
  }