Changeset 9288


Ignore:
Timestamp:
2005-03-04T15:53:42+13:00 (19 years ago)
Author:
kjdon
Message:

added fields does_structure|metadata|content - if these are false, don't advertise or provide the respective service

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl3/src/java/org/greenstone/gsdl3/service/AbstractDocumentRetrieve.java

    r8959 r9288  
    7373    protected String default_document_type = null;
    7474    protected MacroResolver macro_resolver = null;
    75    
     75
     76    /** does this class provide the service?? */
     77    protected boolean does_metadata = true;
     78    protected boolean does_content = true;
     79    protected boolean does_structure = true;
     80
    7681    /** constructor */
    7782    public AbstractDocumentRetrieve()
     
    8691
    8792    // set up short_service_info_ - for now just has name and type
    88     Element dsr_service = this.doc.createElement(GSXML.SERVICE_ELEM);
    89     dsr_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_RETRIEVE);
    90     dsr_service.setAttribute(GSXML.NAME_ATT, DOCUMENT_STRUCTURE_RETRIEVE_SERVICE);
    91     this.short_service_info.appendChild(dsr_service);
    92 
    93     Element dmr_service = this.doc.createElement(GSXML.SERVICE_ELEM);
    94     dmr_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_RETRIEVE);
    95     dmr_service.setAttribute(GSXML.NAME_ATT, DOCUMENT_METADATA_RETRIEVE_SERVICE);
    96     this.short_service_info.appendChild(dmr_service);
    97 
    98     Element dcr_service = this.doc.createElement(GSXML.SERVICE_ELEM);
    99     dcr_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_RETRIEVE);
    100     dcr_service.setAttribute(GSXML.NAME_ATT, DOCUMENT_CONTENT_RETRIEVE_SERVICE);
    101     this.short_service_info.appendChild(dcr_service);
    102 
     93    if (does_structure) {
     94        Element dsr_service = this.doc.createElement(GSXML.SERVICE_ELEM);
     95        dsr_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_RETRIEVE);
     96        dsr_service.setAttribute(GSXML.NAME_ATT, DOCUMENT_STRUCTURE_RETRIEVE_SERVICE);
     97        this.short_service_info.appendChild(dsr_service);
     98    }
     99
     100    if (does_metadata) {
     101        Element dmr_service = this.doc.createElement(GSXML.SERVICE_ELEM);
     102        dmr_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_RETRIEVE);
     103        dmr_service.setAttribute(GSXML.NAME_ATT, DOCUMENT_METADATA_RETRIEVE_SERVICE);
     104        this.short_service_info.appendChild(dmr_service);
     105    }
     106
     107    if (does_content) {
     108        Element dcr_service = this.doc.createElement(GSXML.SERVICE_ELEM);
     109        dcr_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_RETRIEVE);
     110        dcr_service.setAttribute(GSXML.NAME_ATT, DOCUMENT_CONTENT_RETRIEVE_SERVICE);
     111        this.short_service_info.appendChild(dcr_service);
     112    }
     113   
    103114    // look for document display format
    104115    String path = GSPath.appendLink(GSXML.DISPLAY_ELEM, GSXML.FORMAT_ELEM);
     
    145156    result.setAttribute(GSXML.FROM_ATT, DOCUMENT_METADATA_RETRIEVE_SERVICE);
    146157    result.setAttribute(GSXML.TYPE_ATT, GSXML.REQUEST_TYPE_PROCESS);
     158
     159    if (!does_metadata) {
     160        // shouldn't get here
     161        return result;
     162    }
    147163
    148164    // Get the parameters of the request
     
    218234    result.setAttribute(GSXML.TYPE_ATT, GSXML.REQUEST_TYPE_PROCESS);
    219235   
     236    if (!does_structure) {
     237        // shouldn't get here
     238        return result;
     239    }
     240
    220241    String lang = request.getAttribute(GSXML.LANG_ATT);
    221242    Element query_doc_list = (Element) GSXML.getChildByTagName(request, GSXML.DOC_NODE_ELEM+GSXML.LIST_MODIFIER);
     
    406427    result.setAttribute(GSXML.FROM_ATT, DOCUMENT_CONTENT_RETRIEVE_SERVICE);
    407428    result.setAttribute(GSXML.TYPE_ATT, GSXML.REQUEST_TYPE_PROCESS);
     429   
     430    if (!does_content) {
     431        // shouldn't get here
     432        return result;
     433    }
    408434
    409435    // Get the parameters of the request - no parameters at this stage
Note: See TracChangeset for help on using the changeset viewer.