Changeset 6873 for trunk/gsdl3/src/java/org
- Timestamp:
- 2004-02-24T11:13:42+13:00 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl3/src/java/org/greenstone/gsdl3/service/GS2Retrieve.java
r6676 r6873 35 35 import java.util.Set; 36 36 import java.util.Iterator; 37 import java.util.ArrayList; 37 38 38 39 /** Implements the generic retrieval and classifier services for GS2 … … 78 79 protected Element config_info = null; // the xml from the config file 79 80 81 protected ArrayList replacements = null; 80 82 /** constructor */ 81 83 protected GS2Retrieve() … … 185 187 this.format_info_map.put(DOCUMENT_CONTENT_RETRIEVE_SERVICE, this.doc.importNode(display_format, true)); 186 188 // shoudl we make a copy? 189 } 190 191 // set up the replacement list 192 Element replacement_elem = (Element)GSXML.getChildByTagName(extra_info, "replaceList"); 193 if (replacement_elem != null) { 194 this.replacements = new ArrayList(); 195 NodeList replaces = replacement_elem.getElementsByTagName("replace"); 196 for (int i=0; i<replaces.getLength(); i++) { 197 Element e = (Element)replaces.item(i); 198 String from = e.getAttribute("from"); 199 String to = e.getAttribute("to"); 200 System.out.println("replace "+from+" with "+to); 201 this.replacements.add(from); 202 this.replacements.add(to); 203 } 187 204 } 188 205 return true; … … 746 763 String key = (String)it.next(); 747 764 String value = info.getInfo(key); 748 GSXML.addMetadata(this.doc, node_meta_list, key, value);765 GSXML.addMetadata(this.doc, node_meta_list, key, replaceMacros(value)); 749 766 } 750 767 } else { // just get the selected ones … … 771 788 if (pos ==-1) { 772 789 // just a plain meta entry eg dc.Title 773 return info.getInfo(metadata);790 return replaceMacros((String)info.getInfo(metadata)); 774 791 } 775 792 … … 831 848 832 849 if (!multiple) { 833 result.append(re lation_info.getInfo(metadata));850 result.append(replaceMacros(relation_info.getInfo(metadata))); 834 851 } else { 835 852 // we have multiple meta … … 843 860 result.append(separator); 844 861 } 845 result.append( values.elementAt(i));862 result.append(replaceMacros((String)values.elementAt(i))); 846 863 } 847 864 } … … 860 877 if (!multiple) { 861 878 result.insert(0, separator); 862 result.insert(0, re lation_info.getInfo(metadata));879 result.insert(0, replaceMacros(relation_info.getInfo(metadata))); 863 880 } else { 864 881 Vector values = relation_info.getMultiInfo(metadata); … … 866 883 for (int i=values.size()-1; i>=0; i--) { 867 884 result.insert(0, separator); 868 result.insert(0, values.elementAt(i));885 result.insert(0, replaceMacros((String)values.elementAt(i))); 869 886 } 870 887 } … … 877 894 } 878 895 896 897 protected String replaceMacros(String text) { 898 if (this.replacements == null) { 899 return text; 900 } 901 for (int i=0; i<this.replacements.size()-1; i+=2) { 902 String from = (String)this.replacements.get(i); 903 String to = (String)this.replacements.get(i+1); 904 text = text.replaceAll(from, to); 905 } 906 return text; 907 } 879 908 /** Retrieve the content of a document - implemented by concrete subclasses */ 880 909 protected abstract Element processDocumentContentRetrieve(Element request);
Note:
See TracChangeset
for help on using the changeset viewer.