Changeset 24982

Show
Ignore:
Timestamp:
26.01.2012 11:14:42 (8 years ago)
Author:
sjm84
Message:

Reformatting this file ahead of some changes

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/src/java/org/greenstone/gsdl3/Library2.java

    r16688 r24982  
    3333import java.util.Set; 
    3434import java.util.Iterator; 
     35 
    3536/** 
    3637 * A program to take cgi args from the command line and return html 
    37  * 
     38 *  
    3839 * @author <a href="mailto:kjdon@cs.waikato.ac.nz">Katherine Don</a> 
    3940 * @version $Revision$ 
    4041 */ 
    4142 
    42 final public class Library2 { 
    43   
    44     protected XMLConverter converter = null; 
    45     protected Document doc = null; 
    46      
    47     protected HashMap saved_args = null; 
    48     protected GSParams params = null; 
    49     protected DefaultReceptionist recept = null; 
    50      
    51     public Library2 (){ 
    52     this.converter = new XMLConverter(); 
    53     this.doc = converter.newDOM(); 
    54     this.saved_args = new HashMap(); 
    55     this.params = new GSParams(); 
    56     this.recept = new DefaultReceptionist(); 
    57     } 
    58      
    59     public void configure(String site_name, String interface_name) { 
    60  
    61     HashMap config_params = new HashMap(); 
    62     //config_params.put(GSConstants.GSDL3_HOME, gsdl_home); 
    63     config_params.put(GSConstants.SITE_NAME, site_name); 
    64     config_params.put(GSConstants.INTERFACE_NAME, interface_name); 
    65     // new message router - create it and pass a handle to recept. 
    66     // the servlet wont use this directly 
    67     MessageRouter message_router = new MessageRouter(); 
    68      
    69     message_router.setSiteName(site_name); 
    70     message_router.configure(); 
    71     // new receptionist 
    72     recept.setConfigParams(config_params); 
    73     recept.setMessageRouter(message_router); 
    74     recept.setParams(params); 
    75     recept.configure(); 
    76     } 
    77     public static void main(String args[]) { 
    78  
    79     if (args.length != 2) { 
    80         System.out.println("Usage: Library2 <site name> <interface name>"); 
    81         System.exit(1); 
    82     } 
    83      
    84     Library2 library = new Library2(); 
    85     library.configure(args[0], args[1]); 
    86      
    87  
    88     BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
    89     String query=null; 
    90     String result=null; 
    91     while (true) { 
    92         System.out.println("Please enter the  cgi args (all on one line), or 'exit' to quit (default a=p&sa=home)"); 
    93         try { 
    94         query = br.readLine(); 
    95         } catch (Exception e) { 
    96         System.err.println("Library2 exception:"+e.getMessage()); 
    97         } 
    98         if (query.startsWith("exit")) { 
    99         System.exit(1); 
    100         } 
    101  
    102         result = library.process(query); 
    103          
    104         System.out.println(result); 
    105  
    106  
    107     } 
    108  
    109     }  
    110  
    111     protected String process(String query) { 
    112     Element xml_message  = generateRequest(query); 
    113     System.out.println("*********************"); 
    114     System.out.println(converter.getPrettyString(xml_message)); 
    115     Node xml_result = recept.process(xml_message); 
    116     return this.converter.getPrettyString(xml_result); 
    117     } 
    118     protected Element generateRequest(String cgiargs) { 
    119  
    120     Element xml_message = this.doc.createElement(GSXML.MESSAGE_ELEM); 
    121     Element xml_request = GSXML.createBasicRequest(this.doc, GSXML.REQUEST_TYPE_PAGE, "", "", ""); 
    122     xml_message.appendChild(xml_request); 
    123     Element xml_param_list = this.doc.createElement(GSXML.PARAM_ELEM+GSXML.LIST_MODIFIER); 
    124     xml_request.appendChild(xml_param_list); 
    125  
    126     // the defaults 
    127     String action = "p"; 
    128     String subaction = "home"; 
    129     String lang = (String)saved_args.get(GSParams.LANGUAGE); 
    130     if (lang == null) { 
    131         lang = "en"; 
    132     } 
    133     String output = "html"; 
    134      
    135     String args [] = cgiargs.split("&"); 
    136     for (int i=0; i<args.length; i++) { 
    137         String arg = args[i]; 
    138         int pos = arg.indexOf('='); 
    139         if (pos == -1) continue; 
    140         String name = arg.substring(0, pos); 
    141         String value = arg.substring(pos+1); 
    142         if (name.equals(GSParams.ACTION)) { 
    143         action = value; 
    144         } else if (name.equals(GSParams.SUBACTION)) { 
    145         subaction = (value); 
    146         } else if (name.equals(GSParams.LANGUAGE)) { 
    147         lang = value; 
    148         saved_args.put(name, value); 
    149         } else if (name.equals(GSParams.OUTPUT)) { 
    150         output = value; 
    151         } else if (params.shouldSave(name)) { 
    152         saved_args.put(name, value); 
    153         } else { 
    154         // make a param now 
    155         Element param = doc.createElement(GSXML.PARAM_ELEM); 
    156         param.setAttribute(GSXML.NAME_ATT, name); 
    157         param.setAttribute(GSXML.VALUE_ATT, GSXML.xmlSafe(value)); 
    158         xml_param_list.appendChild(param); 
    159         } 
    160     } 
    161  
    162     xml_request.setAttribute(GSXML.OUTPUT_ATT, output); 
    163     xml_request.setAttribute(GSXML.ACTION_ATT, action); 
    164     xml_request.setAttribute(GSXML.SUBACTION_ATT, subaction); 
    165     xml_request.setAttribute(GSXML.LANG_ATT, lang); 
    166  
    167  
    168     // put in all the params from the session cache 
    169     Set params = saved_args.keySet(); 
    170     Iterator i = params.iterator(); 
    171     while (i.hasNext()) { 
    172         String name = (String)i.next(); 
    173         if (name.equals(GSParams.LANGUAGE)) continue; 
    174         Element param = this.doc.createElement(GSXML.PARAM_ELEM); 
    175         param.setAttribute(GSXML.NAME_ATT, name); 
    176         param.setAttribute(GSXML.VALUE_ATT, GSXML.xmlSafe((String)saved_args.get(name))); 
    177         xml_param_list.appendChild(param); 
    178     } 
    179  
    180     return xml_message; 
    181     } 
     43final public class Library2 
     44{ 
     45 
     46    protected XMLConverter converter = null; 
     47    protected Document doc = null; 
     48 
     49    protected HashMap saved_args = null; 
     50    protected GSParams params = null; 
     51    protected DefaultReceptionist recept = null; 
     52 
     53    public Library2() 
     54    { 
     55        this.converter = new XMLConverter(); 
     56        this.doc = converter.newDOM(); 
     57        this.saved_args = new HashMap(); 
     58        this.params = new GSParams(); 
     59        this.recept = new DefaultReceptionist(); 
     60    } 
     61 
     62    public void configure(String site_name, String interface_name) 
     63    { 
     64 
     65        HashMap config_params = new HashMap(); 
     66        //config_params.put(GSConstants.GSDL3_HOME, gsdl_home); 
     67        config_params.put(GSConstants.SITE_NAME, site_name); 
     68        config_params.put(GSConstants.INTERFACE_NAME, interface_name); 
     69        // new message router - create it and pass a handle to recept. 
     70        // the servlet wont use this directly 
     71        MessageRouter message_router = new MessageRouter(); 
     72 
     73        message_router.setSiteName(site_name); 
     74        message_router.configure(); 
     75        // new receptionist 
     76        recept.setConfigParams(config_params); 
     77        recept.setMessageRouter(message_router); 
     78        recept.setParams(params); 
     79        recept.configure(); 
     80    } 
     81 
     82    public static void main(String args[]) 
     83    { 
     84 
     85        if (args.length != 2) 
     86        { 
     87            System.out.println("Usage: Library2 <site name> <interface name>"); 
     88            System.exit(1); 
     89        } 
     90 
     91        Library2 library = new Library2(); 
     92        library.configure(args[0], args[1]); 
     93 
     94        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
     95        String query = null; 
     96        String result = null; 
     97        while (true) 
     98        { 
     99            System.out.println("Please enter the  cgi args (all on one line), or 'exit' to quit (default a=p&sa=home)"); 
     100            try 
     101            { 
     102                query = br.readLine(); 
     103            } 
     104            catch (Exception e) 
     105            { 
     106                System.err.println("Library2 exception:" + e.getMessage()); 
     107            } 
     108            if (query.startsWith("exit")) 
     109            { 
     110                System.exit(1); 
     111            } 
     112 
     113            result = library.process(query); 
     114 
     115            System.out.println(result); 
     116 
     117        } 
     118 
     119    } 
     120 
     121    protected String process(String query) 
     122    { 
     123        Element xml_message = generateRequest(query); 
     124        System.out.println("*********************"); 
     125        System.out.println(converter.getPrettyString(xml_message)); 
     126        Node xml_result = recept.process(xml_message); 
     127        return this.converter.getPrettyString(xml_result); 
     128    } 
     129 
     130    protected Element generateRequest(String cgiargs) 
     131    { 
     132 
     133        Element xml_message = this.doc.createElement(GSXML.MESSAGE_ELEM); 
     134        Element xml_request = GSXML.createBasicRequest(this.doc, GSXML.REQUEST_TYPE_PAGE, "", "", ""); 
     135        xml_message.appendChild(xml_request); 
     136        Element xml_param_list = this.doc.createElement(GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER); 
     137        xml_request.appendChild(xml_param_list); 
     138 
     139        // the defaults 
     140        String action = "p"; 
     141        String subaction = "home"; 
     142        String lang = (String) saved_args.get(GSParams.LANGUAGE); 
     143        if (lang == null) 
     144        { 
     145            lang = "en"; 
     146        } 
     147        String output = "html"; 
     148 
     149        String args[] = cgiargs.split("&"); 
     150        for (int i = 0; i < args.length; i++) 
     151        { 
     152            String arg = args[i]; 
     153            int pos = arg.indexOf('='); 
     154            if (pos == -1) 
     155                continue; 
     156            String name = arg.substring(0, pos); 
     157            String value = arg.substring(pos + 1); 
     158            if (name.equals(GSParams.ACTION)) 
     159            { 
     160                action = value; 
     161            } 
     162            else if (name.equals(GSParams.SUBACTION)) 
     163            { 
     164                subaction = (value); 
     165            } 
     166            else if (name.equals(GSParams.LANGUAGE)) 
     167            { 
     168                lang = value; 
     169                saved_args.put(name, value); 
     170            } 
     171            else if (name.equals(GSParams.OUTPUT)) 
     172            { 
     173                output = value; 
     174            } 
     175            else if (params.shouldSave(name)) 
     176            { 
     177                saved_args.put(name, value); 
     178            } 
     179            else 
     180            { 
     181                // make a param now 
     182                Element param = doc.createElement(GSXML.PARAM_ELEM); 
     183                param.setAttribute(GSXML.NAME_ATT, name); 
     184                param.setAttribute(GSXML.VALUE_ATT, GSXML.xmlSafe(value)); 
     185                xml_param_list.appendChild(param); 
     186            } 
     187        } 
     188 
     189        xml_request.setAttribute(GSXML.OUTPUT_ATT, output); 
     190        xml_request.setAttribute(GSXML.ACTION_ATT, action); 
     191        xml_request.setAttribute(GSXML.SUBACTION_ATT, subaction); 
     192        xml_request.setAttribute(GSXML.LANG_ATT, lang); 
     193 
     194        // put in all the params from the session cache 
     195        Set params = saved_args.keySet(); 
     196        Iterator i = params.iterator(); 
     197        while (i.hasNext()) 
     198        { 
     199            String name = (String) i.next(); 
     200            if (name.equals(GSParams.LANGUAGE)) 
     201                continue; 
     202            Element param = this.doc.createElement(GSXML.PARAM_ELEM); 
     203            param.setAttribute(GSXML.NAME_ATT, name); 
     204            param.setAttribute(GSXML.VALUE_ATT, GSXML.xmlSafe((String) saved_args.get(name))); 
     205            xml_param_list.appendChild(param); 
     206        } 
     207 
     208        return xml_message; 
     209    } 
    182210} 
    183  
    184