Changeset 14035


Ignore:
Timestamp:
05/02/07 13:40:35 (14 years ago)
Author:
shaoqun
Message:

make it restrive mulitple metadata values

File:
1 edited

Legend:

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

    r13575 r14035  
    176176    } else {
    177177        for (int i=0; i<metadata_names.size(); i++) {
    178         String meta_name = (String) metadata_names.get(i);
     178                String meta_name = (String) metadata_names.get(i);
    179179        String value = getMetadata(node_id, info, meta_name, lang);
    180180        GSXML.addMetadata(this.doc, metadata_list, meta_name, value);
     
    301301    int pos = metadata.indexOf(GSConstants.META_RELATION_SEP);
    302302    if (pos ==-1) {
    303         // just a plain meta entry eg dc.Title
    304         return macro_resolver.resolve((String)info.getInfo(metadata), lang, MacroResolver.SCOPE_META, node_id);
    305     }
    306    
     303              Vector values = info.getMultiInfo(metadata);       
     304                   
     305        // just a plain meta entry eg dc.Title
     306         StringBuffer result = new StringBuffer();
     307         boolean first = true;
     308         for (int i=0; i<values.size(); i++) {
     309         if (first) {
     310             first = false;
     311         } else {
     312             result.append(separator);
     313         }
     314         result.append(this.macro_resolver.resolve((String)values.elementAt(i), lang, MacroResolver.SCOPE_META, node_id));
     315         }
     316         return result.toString();
     317    }
     318
    307319    String temp = metadata.substring(0, pos);
    308320    metadata = metadata.substring(pos+1);
     
    366378        // we have multiple meta
    367379        Vector values = relation_info.getMultiInfo(metadata);
    368         if (values != null) {
     380        if (values != null) {
    369381        boolean first = true;
    370382        for (int i=0; i<values.size(); i++) {
     
    377389        }
    378390        }
     391          logger.info(result);
    379392    }
    380393    // if not ancestors, then this is all we do
Note: See TracChangeset for help on using the changeset viewer.