Changeset 25666 for main/trunk/gli
- Timestamp:
- 2012-05-23T21:01:47+12:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/gli/src/org/greenstone/gatherer/collection/BasicCollectionConfiguration.java
r22455 r25666 39 39 import java.io.*; 40 40 import java.util.ArrayList; 41 import org.greenstone.gatherer.Configuration; 41 42 import org.greenstone.gatherer.DebugStream; 42 43 import org.greenstone.gatherer.Dictionary; … … 168 169 Node displayItemListNode = XMLTools.getChildByTagName(root, StaticStrings.DISPLAYITEMLIST_STR); 169 170 171 // Get the metadataList and displayItemList metadata for the current gli language 172 String default_language = StaticStrings.ENGLISH_LANGUAGE_STR; // is this always the case? 173 String gli_language_code = Configuration.getLanguage(); // definitely returns some language code 174 170 175 if (metadataListNode != null) { 171 176 ArrayList metadata_list = XMLTools.getChildElementsByTagName((Element)metadataListNode, StaticStrings.METADATA_STR); 177 178 String fallback_lang_creator = ""; 179 String fallback_lang_maintainer = ""; 180 String fallback_lang_is_public = ""; 181 172 182 for (int i=0; i<metadata_list.size(); i++) { 173 183 Element meta = (Element) metadata_list.get(i); 174 184 String meta_name = meta.getAttribute(StaticStrings.NAME_ATTRIBUTE); 185 186 // want to get the metadata matching GLI's language, or else fall back on the default language 187 // version, or else fall back onto the first value for any language provided for the metadata 188 String meta_lang = meta.getAttribute(StaticStrings.LANG_ATTRIBUTE); // returns "" if no such attribute 189 if(meta_lang.equals("")) { 190 meta_lang = default_language; 191 } 192 175 193 if (meta_name.equals(StaticStrings.COLLECTIONMETADATA_CREATOR_STR)) { 176 creator = XMLTools.getNodeText(meta); 194 if (meta_lang.equals(gli_language_code)) { // metadata's language matched the requested language 195 creator = XMLTools.getNodeText(meta); 196 } else if (meta_lang.equals(default_language)) { // meta_lang matched fall back language 197 fallback_lang_creator = XMLTools.getNodeText(meta); 198 } else if (creator.equals("") && fallback_lang_creator.equals("")) { // resort to first value for meta we can find 199 fallback_lang_creator = XMLTools.getNodeText(meta); 200 } 177 201 } else if (meta_name.equals(StaticStrings.COLLECTIONMETADATA_MAINTAINER_STR)) { 178 maintainer = XMLTools.getNodeText(meta); 202 if (meta_lang.equals(gli_language_code)) { 203 maintainer = XMLTools.getNodeText(meta); 204 } else if (meta_lang.equals(default_language)) { 205 fallback_lang_maintainer = XMLTools.getNodeText(meta); 206 } else if (maintainer.equals("") && fallback_lang_maintainer.equals("")) { // resort to first value for meta we can find 207 fallback_lang_maintainer = XMLTools.getNodeText(meta); 208 } 179 209 } else if (meta_name.equals(StaticStrings.COLLECTIONMETADATA_PUBLIC_STR)) { 180 is_public = XMLTools.getNodeText(meta); 181 } 182 } 183 210 if (meta_lang.equals(gli_language_code)) { 211 is_public = XMLTools.getNodeText(meta); 212 } else if (meta_lang.equals(default_language)) { 213 fallback_lang_is_public = XMLTools.getNodeText(meta); 214 } else if (is_public.equals("") && fallback_lang_is_public.equals("")) { // resort to first value for meta we can find 215 fallback_lang_is_public = XMLTools.getNodeText(meta); 216 } 217 } 218 } 219 // if no metadata found for the requested language, use the one set in the default language 220 if(creator.equals("")) { 221 creator = fallback_lang_creator; 222 } 223 if(maintainer.equals("")) { 224 maintainer = fallback_lang_maintainer; 225 } 226 if(is_public.equals("")) { 227 is_public = fallback_lang_is_public; 228 } 184 229 } 230 231 185 232 if (displayItemListNode != null) { 186 233 ArrayList display_list = XMLTools.getChildElementsByTagName((Element)displayItemListNode, StaticStrings.DISPLAYITEM_STR); 234 235 String fallback_lang_name = ""; 236 String fallback_lang_description = ""; 237 187 238 for (int i=0; i<display_list.size(); i++) { 188 239 Element meta = (Element) display_list.get(i); 189 240 String meta_name = meta.getAttribute(StaticStrings.NAME_ATTRIBUTE); 241 String meta_lang = meta.getAttribute(StaticStrings.LANG_ATTRIBUTE); 242 if(meta_lang.equals("")) { 243 meta_lang = default_language; 244 } 245 190 246 if (meta_name.equals(StaticStrings.NAME_STR)) { 191 name = XMLTools.getNodeText(meta); 247 if (meta_lang.equals(gli_language_code)) { 248 name = XMLTools.getNodeText(meta); 249 } else if (meta_lang.equals(default_language)) { 250 fallback_lang_name = XMLTools.getNodeText(meta); 251 } else if (name.equals("") && fallback_lang_name.equals("")) { 252 fallback_lang_name = XMLTools.getNodeText(meta); 253 } 192 254 } else if (meta_name.equals(StaticStrings.DESCRIPTION_STR)) { 193 description = XMLTools.getNodeText(meta); 255 if (meta_lang.equals(gli_language_code)) { 256 description = XMLTools.getNodeText(meta); 257 } else if (meta_lang.equals(default_language)) { 258 fallback_lang_description = XMLTools.getNodeText(meta); 259 } else if (description.equals("") && fallback_lang_description.equals("")) { 260 fallback_lang_description = XMLTools.getNodeText(meta); 261 } 194 262 } 195 263 264 } 265 266 if(name.equals("")) { 267 name = fallback_lang_name; 268 } 269 if(description.equals("")) { 270 description = fallback_lang_description; 196 271 } 197 272 }
Note:
See TracChangeset
for help on using the changeset viewer.