Changeset 25730
- Timestamp:
- 2012-05-31T17:43:00+12:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/gli/src/org/greenstone/gatherer/cdm/CollectionConfigXMLReadWrite.java
r25207 r25730 31 31 import java.util.ArrayList; 32 32 import java.util.HashMap; 33 import java.util.Iterator; 34 import java.util.LinkedHashSet; 35 import java.util.Map; 36 import java.util.Set; 33 37 import java.util.StringTokenizer; 34 38 … … 1161 1165 Element destination = to.getDocumentElement(); 1162 1166 1163 String[] att_values = { StaticStrings.COLLECTIONMETADATA_COLLECTIONEXTRA_STR, StaticStrings.COLLECTIONMETADATA_ICONCOLLECTIONSMALL_STR, StaticStrings.COLLECTIONMETADATA_ICONCOLLECTION_STR, StaticStrings.COLLECTIONMETADATA_COLLECTIONNAME_STR };1164 1165 String[] map_attrs = { StaticStrings.DESCRIPTION_STR, StaticStrings.SMALLICON_STR, StaticStrings.ICON_STR, StaticStrings.NAME_STR };1166 1167 for (int i = 0; i < att_values.length; i++)1168 { 1169 1170 //dOc1171 ArrayList e_list = XMLTools.getNamedElementList(from.getDocumentElement(), StaticStrings.COLLECTIONMETADATA_ELEMENT, StaticStrings.NAME_ATTRIBUTE, att_values[i]);1172 // if such elements don't exist, don't bother1173 if (e_list == null)1174 {1175 continue;1176 }1177 for (int j = 0; j < e_list.size(); j++)1178 {1179 Element e = (Element) e_list.get(j);1180 if (e.getAttribute(StaticStrings.ASSIGNED_ATTRIBUTE).equals(StaticStrings.FALSE_STR))1181 {1182 continue;1183 }1184 String text = XMLTools.getNodeText(e);1185 String lang = e.getAttribute(StaticStrings.LANGUAGE_ATTRIBUTE);1186 1187 Element displayItem = constructElement(StaticStrings.DISPLAYITEM_STR, map_attrs[i], StaticStrings.LANG_STR, lang, text, to);1188 1189 1190 1167 Map attributeMap = new HashMap(4); 1168 attributeMap.put(StaticStrings.COLLECTIONMETADATA_COLLECTIONEXTRA_STR,StaticStrings.DESCRIPTION_STR); 1169 attributeMap.put(StaticStrings.COLLECTIONMETADATA_COLLECTIONNAME_STR,StaticStrings.NAME_STR); 1170 attributeMap.put(StaticStrings.COLLECTIONMETADATA_ICONCOLLECTIONSMALL_STR,StaticStrings.SMALLICON_STR); 1171 attributeMap.put(StaticStrings.COLLECTIONMETADATA_ICONCOLLECTION_STR,StaticStrings.ICON_STR); 1172 1173 NodeList e_list = from.getDocumentElement().getElementsByTagName(StaticStrings.COLLECTIONMETADATA_ELEMENT); 1174 // if such elements don't exist, don't bother 1175 if (e_list != null) { 1176 1177 for (int j = 0; j < e_list.getLength(); j++) { 1178 Element e = (Element) e_list.item(j); 1179 if (e.getAttribute(StaticStrings.ASSIGNED_ATTRIBUTE).equals(StaticStrings.FALSE_STR)) { 1180 continue; 1181 } 1182 String text = XMLTools.getNodeText(e); 1183 String lang = e.getAttribute(StaticStrings.LANGUAGE_ATTRIBUTE); 1184 String name_value = e.getAttribute(StaticStrings.NAME_ATTRIBUTE); 1185 1186 String name_mapping = (String)attributeMap.get(name_value); 1187 if(name_mapping != null) { 1188 name_value = name_mapping; 1189 } 1190 1191 Element displayItem = constructElement(StaticStrings.DISPLAYITEM_STR, name_value, StaticStrings.LANG_STR, lang, text, to); 1192 displayItemList.appendChild(displayItem); 1193 } 1194 1191 1195 } 1192 1196 destination.appendChild(displayItemList); … … 2334 2338 } 2335 2339 2340 if (displayItemListNode != null) 2341 { 2342 2343 NodeList nl = ((Element)displayItemListNode).getElementsByTagName(StaticStrings.DISPLAYITEM_STR); 2344 2345 // make a list of all unique attribute names that are specifically not 2346 // description, smallicon, icon and name, since these are already processed above 2347 Set setOfUniqueDisplayItemNames = new LinkedHashSet(); 2348 for(int i = 0; i < nl.getLength(); i++) { 2349 Element displayItem = (Element)nl.item(i); 2350 String name = displayItem.getAttribute(StaticStrings.NAME_ATTRIBUTE); 2351 2352 if(name.equals("")) continue; // no name attribute 2353 2354 if(name.equals(StaticStrings.DESCRIPTION_STR)) continue; 2355 if(name.equals(StaticStrings.SMALLICON_STR)) continue; 2356 if(name.equals(StaticStrings.ICON_STR)) continue; 2357 if(name.equals(StaticStrings.NAME_STR)) continue; 2358 2359 // otherwise 2360 setOfUniqueDisplayItemNames.add(name); // Set will ensure no duplicate names 2361 } 2362 2363 Iterator i = setOfUniqueDisplayItemNames.iterator(); 2364 while (i.hasNext()) { 2365 String displayItemName = (String)i.next(); 2366 2367 ArrayList custom_displayItem = doDisplayItemList(dOc, displayItemListNode, displayItemName, displayItemName); 2368 appendArrayList(toElement, custom_displayItem); 2369 } 2370 } 2371 2336 2372 if (buildtype_value.equalsIgnoreCase("mg")) 2337 2373 {
Note:
See TracChangeset
for help on using the changeset viewer.