Changeset 18352 for gli/branches/rtl-gli/src/org/greenstone/gatherer/cdm/CollectionConfiguration.java
- Timestamp:
- 2009-01-12T11:17:16+13:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
gli/branches/rtl-gli/src/org/greenstone/gatherer/cdm/CollectionConfiguration.java
r14636 r18352 293 293 value = tokenizer.nextToken (); 294 294 // Test if the value is actually a name, and if so add the name by itself, then put value into name so that it is parsed correctly during the next loop. 295 if(value.startsWith (StaticStrings.MINUS_CHARACTER)) { 295 // The value is not a name if it contains a space character: it's a quoted value 296 if (value.startsWith(StaticStrings.MINUS_CHARACTER) && value.indexOf(StaticStrings.SPACE_CHARACTER) == -1) { 296 297 arguments.put (name, null); 297 298 name = value; … … 439 440 int option_elements_length = option_elements.getLength (); 440 441 for(int j = 0; j < option_elements_length; j++) { 441 442 Element option_element = (Element) option_elements.item (j); 442 443 if(option_element.getAttribute (StaticStrings.ASSIGNED_ATTRIBUTE).equals (StaticStrings.TRUE_STR)) { 443 444 445 446 447 444 text.append (StaticStrings.SPACE_CHARACTER); 445 text.append (StaticStrings.MINUS_CHARACTER); 446 text.append (option_element.getAttribute (StaticStrings.NAME_ATTRIBUTE)); 447 String value_str = XMLTools.getValue (option_element); 448 448 449 // Convert metadata element names to internal names, and remove extracted metadata namespaces 449 450 if (value_str.length () > 0) { … … 1330 1331 // The next token is the type 1331 1332 String type = tokenizer.nextToken (); 1333 type = ensureNewPluginName(type); 1332 1334 command_element.setAttribute (StaticStrings.TYPE_ATTRIBUTE, type); 1333 1335 // Now we parse out the remaining arguments into a hashmapping from name to value … … 1372 1374 } 1373 1375 catch(Exception exception) { 1376 // This catch clause had been left empty. If this is deliberate then 1377 // we should have a comment here explaining why there is no need to 1378 // print anything out. Am assuming this is mistake for now, and 1379 // have added in a call to printStackTrace() 1380 System.err.println("Malformed plugin statement"); 1381 exception.printStackTrace(); 1374 1382 } 1375 1383 return command_element; … … 1420 1428 command_element.setAttribute (StaticStrings.TYPE_ATTRIBUTE, StaticStrings.INCLUDE_STR); 1421 1429 } 1422 StringTokenizer pattern_tokenizer = new StringTokenizer (full_pattern_str, StaticStrings.SEPARATOR_CHARACTER); 1423 if(pattern_tokenizer.countTokens () >= 2) { 1424 String content_str = pattern_tokenizer.nextToken (); 1430 1431 // Let's make sure it is a valid Greenstone configuration line 1432 String[] results = full_pattern_str.split("\\" + StaticStrings.SEPARATOR_CHARACTER, 3); 1433 1434 if (results.length >= 2) { 1435 String content_str = results[0]; 1425 1436 // Since the contents of indexes have to be certain keywords, or metadata elements, if the content isn't a keyword and doesn't yet have a namespace, append the extracted metadata namespace. 1426 if (!content_str.equals (StaticStrings.FILENAME_STR) && content_str.indexOf (StaticStrings.NS_SEP) == -1) {1437 if (!content_str.equals (StaticStrings.FILENAME_STR) && content_str.indexOf (StaticStrings.NS_SEP) == -1) { 1427 1438 content_str = StaticStrings.EXTRACTED_NAMESPACE + content_str; 1428 1439 } 1429 1440 command_element.setAttribute (StaticStrings.CONTENT_ATTRIBUTE, content_str); 1430 XMLTools.setValue (command_element, pattern_tokenizer.nextToken ()); 1431 if(pattern_tokenizer.hasMoreTokens ()) { 1432 command_element.setAttribute (StaticStrings.OPTIONS_ATTRIBUTE, pattern_tokenizer.nextToken ()); 1433 } 1434 } 1435 pattern_tokenizer = null; 1441 XMLTools.setValue (command_element, results[1]); 1442 if (results.length >= 3) { 1443 command_element.setAttribute (StaticStrings.OPTIONS_ATTRIBUTE, results[2]); 1444 } 1445 } 1436 1446 } 1437 1447 } … … 1521 1531 1522 1532 static private String pluginToString (Element command_element, boolean show_extracted_namespace) { 1523 StringBuffer text = new StringBuffer (); 1524 if(!command_element.getAttribute (StaticStrings.SEPARATOR_ATTRIBUTE).equals (StaticStrings.TRUE_STR)) { 1525 text.append (StaticStrings.PLUGIN_STR); 1526 text.append (StaticStrings.TAB_CHARACTER); 1527 text.append (StaticStrings.TAB_CHARACTER); 1528 text.append (command_element.getAttribute (StaticStrings.TYPE_ATTRIBUTE)); 1529 // Retrieve, and output, the arguments 1530 NodeList option_elements = command_element.getElementsByTagName (StaticStrings.OPTION_ELEMENT); 1531 int option_elements_length = option_elements.getLength (); 1532 if(option_elements_length > 0) { 1533 for(int j = 0; j < option_elements_length; j++) { 1534 Element option_element = (Element) option_elements.item (j); 1535 if(option_element.getAttribute (StaticStrings.ASSIGNED_ATTRIBUTE).equals (StaticStrings.TRUE_STR)) { 1536 text.append (StaticStrings.SPACE_CHARACTER); 1537 text.append (StaticStrings.MINUS_CHARACTER); 1538 text.append (option_element.getAttribute (StaticStrings.NAME_ATTRIBUTE)); 1539 String value_str = XMLTools.getValue (option_element); 1540 if(!show_extracted_namespace && value_str.startsWith (StaticStrings.EXTRACTED_NAMESPACE)) { 1541 value_str = value_str.substring (StaticStrings.EXTRACTED_NAMESPACE.length ()); 1542 } 1543 if(value_str.length () > 0) { 1544 text.append (StaticStrings.SPACE_CHARACTER); 1545 if(value_str.indexOf (StaticStrings.SPACE_CHARACTER) == -1) { 1546 text.append (value_str); 1547 } 1548 else { 1549 text.append (StaticStrings.SPEECH_CHARACTER); 1550 text.append (value_str); 1551 text.append (StaticStrings.SPEECH_CHARACTER); 1552 } 1553 } 1554 value_str = null; 1555 } 1556 option_element = null; 1557 } 1558 } 1559 option_elements = null; 1560 } 1561 return text.toString (); 1533 if(command_element.getAttribute (StaticStrings.SEPARATOR_ATTRIBUTE).equals (StaticStrings.TRUE_STR)) { 1534 return ""; 1535 } 1536 StringBuffer text = new StringBuffer (StaticStrings.PLUGIN_STR); 1537 text.append (StaticStrings.TAB_CHARACTER); 1538 text.append (command_element.getAttribute (StaticStrings.TYPE_ATTRIBUTE)); 1539 // Retrieve, and output, the arguments 1540 NodeList option_elements = command_element.getElementsByTagName (StaticStrings.OPTION_ELEMENT); 1541 int option_elements_length = option_elements.getLength (); 1542 if(option_elements_length > 0) { 1543 for(int j = 0; j < option_elements_length; j++) { 1544 Element option_element = (Element) option_elements.item (j); 1545 if(option_element.getAttribute (StaticStrings.ASSIGNED_ATTRIBUTE).equals (StaticStrings.TRUE_STR)) { 1546 text.append (StaticStrings.SPACE_CHARACTER); 1547 text.append (StaticStrings.MINUS_CHARACTER); 1548 text.append (option_element.getAttribute (StaticStrings.NAME_ATTRIBUTE)); 1549 String value_str = XMLTools.getValue (option_element); 1550 1551 1552 // Convert metadata element names to internal names, and remove extracted metadata namespaces 1553 if (value_str.length () > 0) { 1554 StringTokenizer string_tokenizer = new StringTokenizer (value_str, ","); 1555 StringBuffer value_buffer = new StringBuffer (); 1556 while (string_tokenizer.hasMoreElements ()) { 1557 String raw_token = (String) string_tokenizer.nextElement (); 1558 String token = raw_token.trim (); 1559 MetadataElement metadata_element = MetadataTools.getMetadataElementWithDisplayName (token); 1560 if (metadata_element != null) { 1561 token = metadata_element.getFullName (); 1562 } 1563 1564 if (token.startsWith (StaticStrings.EXTRACTED_NAMESPACE)) { 1565 token = token.substring (StaticStrings.EXTRACTED_NAMESPACE.length ()); 1566 } 1567 value_buffer.append (token); 1568 if (string_tokenizer.hasMoreElements ()) { 1569 value_buffer.append (","); 1570 } 1571 } 1572 value_str = value_buffer.toString (); 1573 } 1574 1575 // if(!show_extracted_namespace && value_str.startsWith (StaticStrings.EXTRACTED_NAMESPACE)) { 1576 // value_str = value_str.substring (StaticStrings.EXTRACTED_NAMESPACE.length ()); 1577 // } 1578 if(value_str.length () > 0) { 1579 text.append (StaticStrings.SPACE_CHARACTER); 1580 if(value_str.indexOf (StaticStrings.SPACE_CHARACTER) == -1) { 1581 text.append (value_str); 1582 } 1583 else { 1584 text.append (StaticStrings.SPEECH_CHARACTER); 1585 text.append (value_str); 1586 text.append (StaticStrings.SPEECH_CHARACTER); 1587 } 1588 } 1589 value_str = null; 1590 } 1591 option_element = null; 1592 } 1593 } 1594 option_elements = null; 1595 1596 return text.toString (); 1562 1597 } 1563 1598 … … 1719 1754 e.setAttribute (StaticStrings.LANGUAGE_ATTRIBUTE, lang); 1720 1755 XMLTools.setNodeText (e, text); 1721 1722 1756 display_item_list.add (e); 1723 1757 } … … 1873 1907 Element e = (Element)index_children.item (i); 1874 1908 String index_str = e.getAttribute (StaticStrings.NAME_ATTRIBUTE); 1875 String index_str_display = index_str;//for creating collectionmetadata for this index 1909 String index_str_display = index_str;//for creating collectionmetadata for this index 1876 1910 1877 1911 // Handling 'index' element … … 2047 2081 Element e = (Element)plugin_children.item (i); 2048 2082 String str = e.getAttribute (StaticStrings.NAME_ATTRIBUTE); 2083 str = ensureNewPluginName(str); 2049 2084 Element plugin_element = to.createElement (StaticStrings.PLUGIN_ELEMENT); 2050 2085 plugin_element.setAttribute (StaticStrings.TYPE_ATTRIBUTE, str); … … 2197 2232 } 2198 2233 if (format != null) { 2199 String gsf_text = XMLTools.xmlNodeToStringWithout Newline(format);2200 2234 String gsf_text = XMLTools.xmlNodeToStringWithoutIndenting(format); 2235 2201 2236 if (gsf_text.startsWith("<") && (gsf_text.indexOf("<") != gsf_text.lastIndexOf("<"))) { 2202 2237 gsf_text = gsf_text.substring(gsf_text.indexOf("<gsf"), … … 3090 3125 StaticStrings.NAME_ATTRIBUTE, index_value); 3091 3126 3092 if (collectionmetadata_list == null) {3093 //try adding the "." prefix3094 index_value = StaticStrings.DOT_CHARACTER + index_value;3095 collectionmetadata_list = XMLTools.getNamedElementList (source,3096 StaticStrings.COLLECTIONMETADATA_ELEMENT,3097 StaticStrings.NAME_ATTRIBUTE, index_value);3098 }3099 3127 if (collectionmetadata_list != null) { 3100 3128 … … 3149 3177 StaticStrings.NAME_ATTRIBUTE, name_str); 3150 3178 3151 if (collectionmetadata_list == null) {3152 //try adding the "." prefix3153 name_str = StaticStrings.DOT_CHARACTER + name_str;3154 collectionmetadata_list = XMLTools.getNamedElementList (source,3155 StaticStrings.COLLECTIONMETADATA_ELEMENT,3156 StaticStrings.NAME_ATTRIBUTE, name_str);3157 }3158 3179 if (collectionmetadata_list != null) { 3159 3180 … … 3291 3312 StaticStrings.NAME_ATTRIBUTE, temp_str); 3292 3313 3293 if (collectionmetadata_list == null) { 3294 //try adding the "." prefix 3295 String with_dot_str = StaticStrings.DOT_CHARACTER + temp_str; 3296 collectionmetadata_list = XMLTools.getNamedElementList (source, 3297 StaticStrings.COLLECTIONMETADATA_ELEMENT, 3298 StaticStrings.NAME_ATTRIBUTE, with_dot_str); 3299 3300 if (collectionmetadata_list == null) { 3301 //try the full name, i.e. with 'ex.' 3302 if (mg_indexer == true) { 3303 full_index_name = level_str+StaticStrings.COLON_CHARACTER+full_index_name; 3304 } 3305 collectionmetadata_list = XMLTools.getNamedElementList (source, 3306 StaticStrings.COLLECTIONMETADATA_ELEMENT, 3307 StaticStrings.NAME_ATTRIBUTE, full_index_name); 3308 } 3309 if (collectionmetadata_list == null) { 3310 with_dot_str = StaticStrings.DOT_CHARACTER + full_index_name; 3311 collectionmetadata_list = XMLTools.getNamedElementList (source, 3312 StaticStrings.COLLECTIONMETADATA_ELEMENT, 3313 StaticStrings.NAME_ATTRIBUTE, with_dot_str); 3314 } 3315 } 3314 if (collectionmetadata_list == null) { 3315 //try the full name, i.e. with 'ex.' 3316 if (mg_indexer == true) { 3317 // but first append level info if we are mg 3318 full_index_name = level_str+StaticStrings.COLON_CHARACTER+full_index_name; 3319 } 3320 collectionmetadata_list = XMLTools.getNamedElementList (source, 3321 StaticStrings.COLLECTIONMETADATA_ELEMENT, 3322 StaticStrings.NAME_ATTRIBUTE, full_index_name); 3323 } 3324 3316 3325 if (collectionmetadata_list != null) { 3317 3326 … … 3368 3377 StaticStrings.NAME_ATTRIBUTE, name_str); 3369 3378 3370 if (collectionmetadata_list == null) {3371 //try adding the "." prefix3372 name_str = StaticStrings.DOT_CHARACTER + name_str;3373 collectionmetadata_list = XMLTools.getNamedElementList (source,3374 StaticStrings.COLLECTIONMETADATA_ELEMENT,3375 StaticStrings.NAME_ATTRIBUTE, name_str);3376 }3377 3379 if (collectionmetadata_list != null) { 3378 3380 … … 3732 3734 // If we're using a remote Greenstone server, upload the new 'collectionConfig.xml' file 3733 3735 if (Gatherer.isGsdlRemote) { 3734 RemoteGreenstoneServer.uploadCollectionFile (collection_name, collect_cfg_file);3736 Gatherer.remoteGreenstoneServer.uploadCollectionFile (collection_name, collect_cfg_file); 3735 3737 } 3736 3738 … … 3824 3826 // If we're using a remote Greenstone server, upload the new collect.cfg file 3825 3827 if (Gatherer.isGsdlRemote) { 3826 RemoteGreenstoneServer.uploadCollectionFile (collection_name, collect_cfg_file);3828 Gatherer.remoteGreenstoneServer.uploadCollectionFile (collection_name, collect_cfg_file); 3827 3829 } 3828 3830 } … … 3886 3888 return skeleton; 3887 3889 } 3890 3891 static private HashMap plugin_map = null; 3892 3893 private void setUpPluginNameMap() { 3894 plugin_map = new HashMap(); 3895 plugin_map.put("GAPlug", "GreenstoneXMLPlugin"); 3896 plugin_map.put("RecPlug", "DirectoryPlugin"); 3897 plugin_map.put("ArcPlug","ArchivesInfPlugin"); 3898 plugin_map.put("TEXTPlug","TextPlugin"); 3899 plugin_map.put("XMLPlug","ReadXMLFile"); 3900 plugin_map.put("EMAILPlug","EmailPlugin"); 3901 plugin_map.put("SRCPlug","SourceCodePlugin"); 3902 plugin_map.put("NULPlug","NulPlugin"); 3903 plugin_map.put("W3ImgPlug","HTMLImagePlugin"); 3904 plugin_map.put("PagedImgPlug","PagedImagePlugin"); 3905 plugin_map.put("METSPlug", "GreenstoneMETSPlugin"); 3906 plugin_map.put("DBPlug", "DatabasePlugin"); 3907 plugin_map.put("PPTPlug", "PowerPointPlugin"); 3908 plugin_map.put("PSPlug", "PostScriptPlugin"); 3909 } 3910 3911 private String ensureNewPluginName(String plugin) { 3912 if (plugin.endsWith("Plugin")) return plugin; 3913 if (plugin_map == null) { 3914 setUpPluginNameMap(); 3915 } 3916 String new_name = (String)plugin_map.get(plugin); 3917 if (new_name != null) return new_name; 3918 new_name = plugin.replaceAll("Plug", "Plugin"); 3919 return new_name; 3920 } 3921 3922 3888 3923 ///*********************************************************************************************************/// 3889 3924 } 3925
Note:
See TracChangeset
for help on using the changeset viewer.