- Timestamp:
- 2010-03-03T14:59:22+13:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone2/runtime-src/src/oaiservr/metaformat.cpp
r21605 r21761 39 39 } 40 40 41 bool metaformat::output_custom_metadata(ostream &output, outconvertclass &outconvert, bool &headerDone, const text_t &collection, ResultDocInfo_t &docInfo) { 42 return false; 43 } 41 44 bool metaformat::scan_metadata(ostream &output, const text_t &collection, ResultDocInfo_t &docInfo, 42 45 bool doOutput) … … 70 73 text_t mapTo = this->get_mapping(collection, here->first); 71 74 if (mapTo != "") { 72 // Do we actually want to do anything here? Doesn't getting here imply that this73 // particular metadata is stuff we don't want?74 75 if (doOutput) { 75 76 if (this->is_valid_element(mapTo)) { … … 85 86 86 87 // Otherwise try to map the element automatically 87 // For example, dc.X is mapped to oai_dc.X (doesn't check X is a valid Dublin Core element though)88 // For example, dc.X is mapped to oai_dc.X 88 89 else if (metaItem == this->formatPrefix()) { 89 90 metaItem = substr(last+1, here->first.end()); // Get the rest of the metadata tag (it's name) but without the '.' … … 117 118 return false; 118 119 } 119 120 // specific metadata formats might need to do some custom metadata that is not just a standard mapping. eg oai_dc outputting an identifier that is a link 121 this->output_custom_metadata(output, utf8convert, headerDone, collection, docInfo); 120 122 if (headerDone) { 123 121 124 this->output_metadata_footer(output); 122 125 } … … 125 128 } 126 129 130 text_t metaformat::get_metadata_value(ResultDocInfo_t &docInfo, const text_t &meta_name) { 131 MetadataInfo_tmap::iterator here = docInfo.metadata.find(meta_name); 132 if (here == docInfo.metadata.end()) { 133 return ""; 134 } 135 return here->second.values[0]; 136 137 } 138 139 void metaformat::get_metadata_values(ResultDocInfo_t &docInfo, const text_t &meta_name, text_tarray &values) { 140 MetadataInfo_tmap::iterator here = docInfo.metadata.find(meta_name); 141 if (here != docInfo.metadata.end()) { 142 values = here->second.values; 143 } 144 } 127 145 128 146 bool metaformat::is_available(const text_t &collection, ResultDocInfo_t &docInfo)
Note:
See TracChangeset
for help on using the changeset viewer.