metalist_.add(tmp);
for (int i=0; i<tmp.size(); i++) { metalist_.add(tmp.get(i)); }
  public int write(DMDJobList joblist) throws IOException   {    int count = 0;    boolean all = joblist.contains("/") || joblist.contains("/*");    Vector tmp = new Vector(5, 5);    // extern and intern joblist elements    joblist.add(joblist_);        InputStreamReader sr = new InputStreamReader(input_);    BufferedReader reader = new BufferedReader(sr);    OutputStreamWriter sw = new OutputStreamWriter(output_);    PrintWriter writer = new PrintWriter(sw);        String s = reader.readLine();    // replace all existing metatags     while(s != null && !regex_stop_.search(s)) {      if (regex_title_.search(s))      {        // search line for the title element        if (all || joblist.contains("/title"))         {          DMDTextNode node = (DMDTextNode)firstDMDNode("/title", metalist_, tmp);          if(node != null)          {            regex_title_.setReplaceRule("<title>" + node.get() + "</title>");            writer.println(regex_title_.replaceFirst(s));                  }          count++;        }      }        // search line for a meta element      else if (regex_meta_.search(s))      {        String name = regex_meta_.stringMatched(1).toLowerCase();        if(all || joblist.contains("/" + name ))         {          DMDTextNode node = (DMDTextNode)firstDMDNode("/" + name, metalist_, tmp);          if(node != null) {            regex_title_.setReplaceRule("<meta name=\"" + name + "\" content=\"" + node.get() + "\">");            writer.println(regex_title_.replaceFirst(s));          }          count++;        }      }      else      // found no metatag      {        writer.println(s);      }      s = reader.readLine();    }        // append metatags to the header    DMDTextNode node = (DMDTextNode)firstDMDNode("/", metalist_, tmp);    while(node != null)    {      String name = node.getName();      if(name.equals("title"))      {        if (all || joblist.contains("/title"))         {          writer.println("<title>"+ node.get() +"</title>");          count++;        }      }      else      {        if (all || joblist.contains("/" + name))         {          writer.println("<meta name=\"" + name + "\" content=\"" + node.get() + "\">");              count++;        }      }      node = (DMDTextNode)firstDMDNode("/", metalist_, tmp);    }    // restore metadatalist    metalist_.add(tmp);                // read complete stream    while(s != null)    {      writer.println(s);      s = reader.readLine();    }        reader.close();    sr.close();      writer.close();    sw.close();            return count;  }