Changeset 37513


Ignore:
Timestamp:
2023-03-16T19:38:35+13:00 (14 months ago)
Author:
kjdon
Message:

modified getREquiredMEtadataNames to look on format and in extra metadata. added getserviceDEscription - to avoid duplicating code

File:
1 edited

Legend:

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

    r33771 r37513  
    1010import org.greenstone.gsdl3.util.GSConstants;
    1111import org.greenstone.gsdl3.util.GSParams;
     12import org.greenstone.gsdl3.util.GSPath;
    1213import org.greenstone.gsdl3.util.GSXML;
    1314import org.greenstone.gsdl3.util.GSXSLT;
     
    102103    }
    103104
    104   protected void getRequiredMetadataNames(Element format, HashSet<String> meta_names) {
    105     GSXSLT.findExtraMetadataNames(format, meta_names);
     105  protected void getRequiredMetadataNames(HashSet<String> meta_names, Element format, Element request) {
     106    if (format != null) {
     107      GSXSLT.findExtraMetadataNames(format, meta_names);
     108    }
     109    if (request != null) {
     110      // look for extraMetadata
     111      Element extraMetaListElem = (Element) GSXML.getChildByTagName(request, GSXML.EXTRA_METADATA + GSXML.LIST_MODIFIER);
     112      if (extraMetaListElem != null)
     113      {
     114        NodeList extraMetaList = extraMetaListElem.getElementsByTagName(GSXML.EXTRA_METADATA);
     115        for (int i = 0; i < extraMetaList.getLength(); i++)
     116        {
     117          meta_names.add(((Element) extraMetaList.item(i)).getAttribute(GSXML.NAME_ATT));
     118        }
     119      }
     120     
     121    }
    106122  }
    107123
     
    193209    }
    194210
     211  protected Element getServiceDescription(String to, UserContext userContext)
     212  {
     213    Document doc = XMLConverter.newDOM();
     214    Element mr_info_message = doc.createElement(GSXML.MESSAGE_ELEM);
     215    Element mr_info_request = GSXML.createBasicRequest(doc, GSXML.REQUEST_TYPE_DESCRIBE, to, userContext);
     216    mr_info_message.appendChild(mr_info_request);
     217    Element mr_info_response = (Element) this.mr.process(mr_info_message);
     218
     219    String path = GSXML.RESPONSE_ELEM;
     220    path = GSPath.appendLink(path, GSXML.SERVICE_ELEM);
     221
     222    Element description = (Element)GSXML.getNodeByPath(mr_info_response, path);
     223    return description;
     224 
     225  }
    195226    protected Element getFormatInfo(String to, UserContext userContext)
    196227    {
Note: See TracChangeset for help on using the changeset viewer.