Ignore:
Timestamp:
2009-01-12T11:17:16+13:00 (15 years ago)
Author:
kjdon
Message:

updated the rtl-gli branch with files from trunk. Result of a merge 14807:18318

File:
1 edited

Legend:

Unmodified
Added
Removed
  • gli/branches/rtl-gli/src/org/greenstone/gatherer/cdm/CollectionConfiguration.java

    r14636 r18352  
    293293                value = tokenizer.nextToken ();
    294294                // 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) {
    296297                    arguments.put (name, null);
    297298                    name = value;
     
    439440        int option_elements_length = option_elements.getLength ();
    440441        for(int j = 0; j < option_elements_length; j++) {
    441             Element option_element = (Element) option_elements.item (j);
     442      Element option_element = (Element) option_elements.item (j);
    442443            if(option_element.getAttribute (StaticStrings.ASSIGNED_ATTRIBUTE).equals (StaticStrings.TRUE_STR)) {
    443                 text.append (StaticStrings.SPACE_CHARACTER);
    444                 text.append (StaticStrings.MINUS_CHARACTER);
    445                 text.append (option_element.getAttribute (StaticStrings.NAME_ATTRIBUTE));
    446                 String value_str = XMLTools.getValue (option_element);
    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             
    448449                // Convert metadata element names to internal names, and remove extracted metadata namespaces
    449450                if (value_str.length () > 0) {
     
    13301331                // The next token is the type
    13311332                String type = tokenizer.nextToken ();
     1333        type = ensureNewPluginName(type);
    13321334                command_element.setAttribute (StaticStrings.TYPE_ATTRIBUTE, type);
    13331335                // Now we parse out the remaining arguments into a hashmapping from name to value
     
    13721374        }
    13731375        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();
    13741382        }
    13751383        return command_element;
     
    14201428                    command_element.setAttribute (StaticStrings.TYPE_ATTRIBUTE, StaticStrings.INCLUDE_STR);
    14211429                }
    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];
    14251436                    // 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) {
    14271438                        content_str = StaticStrings.EXTRACTED_NAMESPACE + content_str;
    14281439                    }
    14291440                    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                }
    14361446            }
    14371447        }
     
    15211531   
    15221532    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 ();
    15621597    }
    15631598   
     
    17191754            e.setAttribute (StaticStrings.LANGUAGE_ATTRIBUTE, lang);
    17201755            XMLTools.setNodeText (e, text);
    1721            
    17221756            display_item_list.add (e);
    17231757        }
     
    18731907            Element e = (Element)index_children.item (i);
    18741908            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 
    18761910           
    18771911            // Handling 'index' element
     
    20472081            Element e = (Element)plugin_children.item (i);
    20482082            String str = e.getAttribute (StaticStrings.NAME_ATTRIBUTE);
     2083        str = ensureNewPluginName(str);
    20492084            Element plugin_element = to.createElement (StaticStrings.PLUGIN_ELEMENT);
    20502085            plugin_element.setAttribute (StaticStrings.TYPE_ATTRIBUTE, str);
     
    21972232            }
    21982233            if (format != null) {
    2199                 String gsf_text = XMLTools.xmlNodeToStringWithoutNewline(format);
    2200                 
     2234                String gsf_text = XMLTools.xmlNodeToStringWithoutIndenting(format);
     2235               
    22012236                if (gsf_text.startsWith("<") && (gsf_text.indexOf("<") != gsf_text.lastIndexOf("<"))) {
    22022237                    gsf_text = gsf_text.substring(gsf_text.indexOf("<gsf"),
     
    30903125            StaticStrings.NAME_ATTRIBUTE, index_value);
    30913126           
    3092             if (collectionmetadata_list == null) {
    3093                 //try adding the "." prefix
    3094                 index_value = StaticStrings.DOT_CHARACTER + index_value;
    3095                 collectionmetadata_list = XMLTools.getNamedElementList (source,
    3096                 StaticStrings.COLLECTIONMETADATA_ELEMENT,
    3097                 StaticStrings.NAME_ATTRIBUTE, index_value);
    3098             }
    30993127            if (collectionmetadata_list != null) {
    31003128               
     
    31493177            StaticStrings.NAME_ATTRIBUTE, name_str);
    31503178           
    3151             if (collectionmetadata_list == null) {
    3152                 //try adding the "." prefix
    3153                 name_str = StaticStrings.DOT_CHARACTER + name_str;
    3154                 collectionmetadata_list = XMLTools.getNamedElementList (source,
    3155                 StaticStrings.COLLECTIONMETADATA_ELEMENT,
    3156                 StaticStrings.NAME_ATTRIBUTE, name_str);
    3157             }
    31583179            if (collectionmetadata_list != null) {
    31593180               
     
    32913312            StaticStrings.NAME_ATTRIBUTE, temp_str);
    32923313           
    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   
    33163325            if (collectionmetadata_list != null) {
    33173326               
     
    33683377            StaticStrings.NAME_ATTRIBUTE, name_str);
    33693378           
    3370             if (collectionmetadata_list == null) {
    3371                 //try adding the "." prefix
    3372                 name_str = StaticStrings.DOT_CHARACTER + name_str;
    3373                 collectionmetadata_list = XMLTools.getNamedElementList (source,
    3374                 StaticStrings.COLLECTIONMETADATA_ELEMENT,
    3375                 StaticStrings.NAME_ATTRIBUTE, name_str);
    3376             }
    33773379            if (collectionmetadata_list != null) {
    33783380               
     
    37323734        // If we're using a remote Greenstone server, upload the new 'collectionConfig.xml' file
    37333735        if (Gatherer.isGsdlRemote) {
    3734             RemoteGreenstoneServer.uploadCollectionFile (collection_name, collect_cfg_file);
     3736            Gatherer.remoteGreenstoneServer.uploadCollectionFile (collection_name, collect_cfg_file);
    37353737        }
    37363738       
     
    38243826            // If we're using a remote Greenstone server, upload the new collect.cfg file
    38253827            if (Gatherer.isGsdlRemote) {
    3826                 RemoteGreenstoneServer.uploadCollectionFile (collection_name, collect_cfg_file);
     3828                Gatherer.remoteGreenstoneServer.uploadCollectionFile (collection_name, collect_cfg_file);
    38273829            }
    38283830        }
     
    38863888        return skeleton;
    38873889    }
     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
    38883923    ///*********************************************************************************************************///
    38893924}
     3925
Note: See TracChangeset for help on using the changeset viewer.