Changeset 4856


Ignore:
Timestamp:
2003-07-02T16:35:13+12:00 (21 years ago)
Author:
kjdon
Message:

added some metadata stuff for finding out list of metadata from format statements

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl3/src/java/org/greenstone/gsdl3/action/Action.java

    r4695 r4856  
    1313import java.util.Vector;
    1414import java.util.HashMap;
     15import java.util.HashSet;
     16import java.util.Iterator;
    1517
    1618/** base class for Actions */
     
    5860    abstract public Element process(Element xml_in);
    5961
    60 //      protected Vector getMetadata(Element format) {
    61 //      NodeList nodes = format.getElementsByTagName("gsf:metadata");
    62 //          Vector meta_names = new Vector();
    63 //          for (int i=0; i<nodes.getLength(); i++) {
    64 //              meta_names.add(((Element)nodes.item(i)).getAttribute("name"));
    65 //          }
    66 //          return meta_names;
    67 //      }
     62    protected void extractMetadataNames(Element format, HashSet meta_names) {
     63    //NodeList nodes = format.getElementsByTagNameNS("metadata", "http://www.greenstone.org/configformat");
     64    NodeList nodes = format.getElementsByTagName("gsf:metadata");
     65        for (int i=0; i<nodes.getLength(); i++) {
     66        String name = ((Element)nodes.item(i)).getAttribute("name");
     67        System.out.println("found a metadata name="+name);
     68        String select = ((Element)nodes.item(i)).getAttribute("select");
     69        if (select.equals("parent")) {
     70        meta_names.add("parent_"+name);
     71        } else if (select.equals("ancestors")) {
     72        String separator = ((Element)nodes.item(i)).getAttribute("separator");
     73        meta_names.add("ancestors'"+separator+"'_"+name);
     74        } else {
     75        meta_names.add(name);
     76        }
     77        }
     78    }
     79
     80    protected Element createMetadataParamList(HashSet metadata_names) {
     81    Element param_list  = doc_.createElement(GSXML.PARAM_ELEM+GSXML.LIST_MODIFIER);
     82   
     83    Element param = null;
     84    Iterator i = metadata_names.iterator();
     85    while (i.hasNext()) {
     86        String name = (String)i.next();
     87        param = doc_.createElement(GSXML.PARAM_ELEM);
     88        param_list.appendChild(param);
     89        param.setAttribute(GSXML.NAME_ATT, "metadata");
     90        param.setAttribute(GSXML.VALUE_ATT, name);
     91   
     92    }
     93    System.out.println("metadata list = "+converter_.getString(param_list));
     94    return param_list;
     95    }
     96
     97
    6898}
    6999
Note: See TracChangeset for help on using the changeset viewer.