private static void importLegacyInterpreters(Element config, VMDefinitionsContainer container) {
   IVMInstallType vmType =
       RubyRuntime.getVMInstallType("org.rubypeople.rdt.launching.StandardVMType");
   // Traverse the parsed structure and populate the VMType to VM Map
   NodeList list = config.getChildNodes();
   int length = list.getLength();
   for (int i = 0; i < length; ++i) {
     Node node = list.item(i);
     short type = node.getNodeType();
     if (type == Node.ELEMENT_NODE) {
       Element vmElement = (Element) node;
       if (vmElement.getNodeName().equalsIgnoreCase("interpreter")) { // $NON-NLS-1$
         legacyPopulateVMForType(vmType, vmElement, container);
       }
     }
   }
 }
  /**
   * For the specified vm type node, parse all subordinate VM definitions and add them to the
   * specified container.
   */
  private static void populateVMTypes(Element vmTypeElement, VMDefinitionsContainer container) {

    // Retrieve the 'id' attribute and the corresponding VM type object
    String id = vmTypeElement.getAttribute("id"); // $NON-NLS-1$
    IVMInstallType vmType = RubyRuntime.getVMInstallType(id);
    if (vmType != null) {

      // For each VM child node, populate the container with a subordinate node
      NodeList vmNodeList = vmTypeElement.getChildNodes();
      for (int i = 0; i < vmNodeList.getLength(); ++i) {
        Node vmNode = vmNodeList.item(i);
        short type = vmNode.getNodeType();
        if (type == Node.ELEMENT_NODE) {
          Element vmElement = (Element) vmNode;
          if (vmElement.getNodeName().equalsIgnoreCase("vm")) { // $NON-NLS-1$
            populateVMForType(vmType, vmElement, container);
          }
        }
      }
    } else {
      LaunchingPlugin.log(LaunchingMessages.RubyRuntime_VM_type_element_with_unknown_id_1);
    }
  }