code: private static void createIndex( JarOutputStream jos, List oldEntries, Map movedMap )
              throws IOException
      {
          StringWriter writer = new StringWriter();
  
          writer.write( VERSION_HEADER );
          writer.write( "\r\n" );
  
          // Write out entries that have been removed
          for ( Object oldEntry : oldEntries )
          {
              String name = (String) oldEntry;
  
              writer.write( REMOVE_COMMAND );
              writer.write( " " );
              writeEscapedString( writer, name );
              writer.write( "\r\n" );
          }
  
          // And those that have moved
  
          for ( Object o : movedMap.keySet() )
          {
              String newName = (String) o;
              String oldName = (String) movedMap.get( newName );
  
              writer.write( MOVE_COMMAND );
              writer.write( " " );
              writeEscapedString( writer, oldName );
              writer.write( " " );
              writeEscapedString( writer, newName );
              writer.write( "\r\n" );
          }
  
          JarEntry je = new JarEntry( INDEX_NAME );
          byte[] bytes = writer.toString().getBytes( "UTF-8" );
  
          writer.close();
          jos.putNextEntry( je );
          jos.write( bytes, 0, bytes.length );
      }
docs: Writes the index file out to <code>jos</code>.
  <code>oldEntries</code> gives the names of the files that were removed,
  <code>movedMap</code> maps from the new name to the old name.
  
  @param jos        TODO
  @param oldEntries TODO
  @param movedMap   TODO
  @throws IOException TODO