Changeset 8674


Ignore:
Timestamp:
2004-11-25T15:42:27+13:00 (19 years ago)
Author:
kjdon
Message:

several changes all at once. GDBMWrapper methods docnum2Oid and oid2Docnum renamed, the content and metadata retrieve methods now look for an extra parameter: ext. this is for doing greenstone 2 relative external links. where you get a url, and you look this up in the database to turn it into a greensotne hash id.

Location:
trunk/gsdl3/src/java/org/greenstone/gsdl3/service
Files:
5 edited

Legend:

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

    r8616 r8674  
    8989    result.setAttribute(GSXML.TYPE_ATT, GSXML.REQUEST_TYPE_PROCESS);
    9090
    91     // Get the parameters of the request - not used at the moment
    92     //Element param_list = (Element) GSXML.getChildByTagName(request, GSXML.PARAM_ELEM+GSXML.LIST_MODIFIER);
     91    // Get the parameters of the request
     92    Element param_list = (Element) GSXML.getChildByTagName(request, GSXML.PARAM_ELEM+GSXML.LIST_MODIFIER);
     93    Element extlink_param = GSXML.getNamedElement(param_list, GSXML.PARAM_ELEM, GSXML.NAME_ATT, EXTLINK_PARAM);
     94    boolean extlink = false;
     95    if (extlink_param != null && GSXML.getValue(extlink_param).equals("1")) {
     96        extlink = true;
     97    }
    9398
    9499    // Get the request doc_list
     
    111116    for (int i = 0; i < doc_ids.length; i++) {
    112117        String doc_id = doc_ids[i];
    113 
    114         if (OID.needsTranslating(doc_id)) {
     118        if (extlink) {
     119        doc_id = this.gdbm_src.extlink2OID(doc_id);
     120        }
     121        else if (OID.needsTranslating(doc_id)) {
    115122        doc_id = this.gdbm_src.translateOID(doc_id);
    116123        }
    117124
    118         long doc_num = this.gdbm_src.oid2Docnum(doc_id);
     125        long doc_num = this.gdbm_src.OID2Docnum(doc_id);
    119126        String doc_content = this.mgpp_src.getDocument(textdir, this.default_level, doc_num);
    120127        doc_content = resolveTextMacros(doc_content, doc_id, lang);
  • trunk/gsdl3/src/java/org/greenstone/gsdl3/service/GS2MGPPSearch.java

    r7825 r8674  
    508508    for (int d = 0; d < docs.size(); d++) {
    509509        long docnum = ((MGPPDocInfo) docs.elementAt(d)).num_;
    510         String doc_id = this.gdbm_src.docnum2Oid(docnum);
     510        String doc_id = this.gdbm_src.docnum2OID(docnum);
    511511        Element doc_node = createDocumentNodeElement(doc_id);
    512512        document_list.appendChild(doc_node);
  • trunk/gsdl3/src/java/org/greenstone/gsdl3/service/GS2MGRetrieve.java

    r8616 r8674  
    9191
    9292    // Get the parameters of the request - no parameters at this stage
    93     //Element param_list = (Element) GSXML.getChildByTagName(request, GSXML.PARAM_ELEM+GSXML.LIST_MODIFIER);
    94 
     93    Element param_list = (Element) GSXML.getChildByTagName(request, GSXML.PARAM_ELEM+GSXML.LIST_MODIFIER);
     94    Element extlink_param = GSXML.getNamedElement(param_list, GSXML.PARAM_ELEM, GSXML.NAME_ATT, EXTLINK_PARAM);
     95    boolean extlink = false;
     96    if (extlink_param != null && GSXML.getValue(extlink_param).equals("1")) {
     97        extlink = true;
     98    }
    9599    // Get the request content
    96    
     100    System.err.println("extlink = "+extlink);
    97101    Element query_doc_list = (Element) GSXML.getChildByTagName(request, GSXML.DOC_NODE_ELEM+GSXML.LIST_MODIFIER);
    98102    if (query_doc_list == null) {
     
    112116    this.mg_src.setIndex(indexpath);
    113117   
     118    System.err.println("getting the docs");
    114119    // Get the documents
    115120    String[] doc_ids = GSXML.getAttributeValuesFromList(query_doc_list,
     
    117122    for (int i = 0; i < doc_ids.length; i++) {
    118123        String doc_id = doc_ids[i];
    119         if (OID.needsTranslating(doc_id)) {
     124        System.err.println("doc id= "+doc_id);
     125        if (extlink) {
     126        if (OID.needsTranslating(doc_id)) {
     127           
     128            // just ignore the extension cos it has no meaning here
     129            // or should it be added back on for the next step???
     130            doc_id = this.gdbm_src.extlink2OID(doc_id.substring(0,doc_id.length()-3));
     131        } else {
     132            doc_id = this.gdbm_src.extlink2OID(doc_id);
     133
     134        }
     135        }
     136        else if (OID.needsTranslating(doc_id)) {
    120137        doc_id = this.gdbm_src.translateOID(doc_id);
    121138        }
    122         long doc_num = this.gdbm_src.oid2Docnum(doc_id);
     139        System.err.println("remaining dco id = "+doc_id);
     140        long doc_num = this.gdbm_src.OID2Docnum(doc_id);
    123141
    124142        String doc_content = this.mg_src.getDocument(basedir, textdir, doc_num);
  • trunk/gsdl3/src/java/org/greenstone/gsdl3/service/GS2MGSearch.java

    r8612 r8674  
    139139    for (int d = 0; d < docs.size(); d++) {
    140140        long docnum = ((MGDocInfo) docs.elementAt(d)).num_;
    141         String doc_id = this.gdbm_src.docnum2Oid(docnum);
     141        String doc_id = this.gdbm_src.docnum2OID(docnum);
    142142        Element doc_node = createDocumentNodeElement(doc_id);
    143143        document_list.appendChild(doc_node);
  • trunk/gsdl3/src/java/org/greenstone/gsdl3/service/GS2Retrieve.java

    r8642 r8674  
    7373    protected static final String INFO_SIB_POS = "siblingPosition";
    7474
     75    protected static final String EXTLINK_PARAM = "ext";
     76   
    7577    protected static final int DOCUMENT=1;
    7678    protected static final int CLASSIFIER=2;
     
    723725    }
    724726
     727    boolean extlink = false;
    725728    // The metadata information required
    726729    Vector metadata_list = new Vector();
     
    737740        }
    738741        metadata_list.add(metadata);
     742        } else if (param.getAttribute(GSXML.NAME_ATT).equals(EXTLINK_PARAM)&& GSXML.getValue(param).equals("1")) {
     743        extlink = true;
    739744        }
    740745        param = (Element) param.getNextSibling();
     
    756761        String node_id = request_node.getAttribute(GSXML.NODE_ID_ATT);
    757762
    758         if (OID.needsTranslating(node_id)) {
     763        if (extlink) {
     764        if (OID.needsTranslating(node_id)) {
     765            // just ignore the extension cos it has no meaning here
     766            // or should it be added back on for the next step???
     767            node_id = this.gdbm_src.extlink2OID(node_id.substring(0,node_id.length()-3));
     768        } else {
     769            node_id = this.gdbm_src.extlink2OID(node_id);
     770        }
     771        }
     772        else if (OID.needsTranslating(node_id)) {
    759773        node_id = this.gdbm_src.translateOID(node_id);
    760774        }
Note: See TracChangeset for help on using the changeset viewer.