metalist_.add(tmp);
for (int i=0; i<tmp.size(); i++) { metalist_.add(tmp.get(i)); }
  public int update(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_);        FileReader fr = new FileReader(file_);    BufferedReader reader = new BufferedReader(fr);        StringBuffer buffer = new StringBuffer();    String s = reader.readLine();    while(s != null && !regex_stop_.search(s)) {      // search line for the title element      if (regex_title_.search(s))      {        if (all || joblist.contains("/title"))         {          DMDTextNode node = (DMDTextNode)firstDMDNode("/title", metalist_, tmp);          if(node != null)          {            regex_title_.setReplaceRule("<title>" + node.get() + "</title>");            s = 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() + "\">");            s = regex_title_.replaceFirst(s);          }          count++;			          }      }      buffer.append(s);      buffer.append("\n");       s = reader.readLine();    }    DMDTextNode node = (DMDTextNode)firstDMDNode("/", metalist_, tmp);    while(node != null)    {      String name = node.getName();      if(name.equals("title"))      {        if (all || joblist.contains("/title"))         {          buffer.append("<title>"+ node.get() +"</title>");          buffer.append("\n");          count++;        }      }      else      {        if (all || joblist.contains("/" + name))         {          buffer.append("<meta name=\"" + name + "\" content=\"" + node.get() + "\">");          buffer.append("\n");          count++;        }      }      node = (DMDTextNode)firstDMDNode("/", metalist_, tmp);    }    // restore metadatalist    metalist_.add(tmp);            // read complete file    while(s != null)    {      buffer.append(s);      buffer.append("\n");      s = reader.readLine();    }        reader.close();    fr.close();    // write complete file        FileWriter fw = new FileWriter(file_);    BufferedWriter writer = new BufferedWriter(fw);    writer.write(buffer.toString());        writer.close();    fw.close();            return count;  }