View Javadoc

1   package org.astrogrid.portal.registry;
2   
3   import org.apache.avalon.framework.parameters.Parameters;
4   import org.apache.cocoon.acting.AbstractAction;
5   import org.apache.cocoon.environment.Request;
6   import org.apache.cocoon.environment.Session;
7   import org.apache.cocoon.environment.Redirector;
8   import org.apache.cocoon.environment.SourceResolver;
9   import org.apache.cocoon.environment.ObjectModelHelper;
10  import java.util.Map;
11  import java.util.HashMap;
12  import java.util.ArrayList;
13  import java.util.LinkedHashMap;
14  import java.io.File;
15  
16  import org.astrogrid.config.Config;
17  
18  
19  /***
20   * Main Options component to let the user determine the next course of action
21   * which are Query, Add, or Harvest new registry entry.
22   *
23   */
24  public class RegistryOptionAction extends AbstractAction
25  {
26     /***
27      * Switch for our debug statements.
28      *
29      */
30     public static boolean DEBUG_FLAG = true;
31     
32     private static final String PARAM_MAIN_ELEMENT = "mainelement";   
33     private static final String PARAM_CONE_SEARCH = "conesearch";
34     private static final String PARAM_SIA = "sia";
35     private static final String PARAM_HTTP = "paramhttp";
36     
37     public static Config conf = null;   
38     
39     /***
40      * Cocoon param for the user param in the session.
41      *
42      */
43     private static final String PARAM_ACTION = "action";
44     
45     private static final String PARAM_CRITERIA_NUMBER = "criteria_number";   
46  
47     private static final String PARAM_MAIN_SEARCH_ELEMENT = "searchelement";   
48     
49     private static final Integer DEFAULT_CRITERIA_NUMBER = new Integer(1);
50     
51     private static final String ADD_ACTION = "add";
52     
53     private static final String UPDATE_ACTION = "update";   
54     
55     private static final String REMOVE_ACTION = "remove";   
56  
57     private static final String ADD_CRITERIA_ACTION = "addcriteria";   
58     
59     public static final String RESOURCE_OPTION = "Resource";   
60     public static final String ORGANISATION_OPTION = "Organisation";
61     public static final String SERVICE_OPTION = "Service";
62     public static final String AUTHORITY_OPTION = "Authority";
63     public static final String REGISTRY_OPTION = "Registry";
64     public static final String SKYSERVICE_OPTION = "SkyService";
65     public static final String TABULARSKYSERVICE_OPTION = "TabularSkyService";
66     public static final String DATACOLLECTION_OPTION = "DataCollection";
67     
68     private static final String ORGANISATION_XML_URL_TEMPLATE_PROPERTY =
69                                            "OrganisationTemplate.xml";
70     private static final String RESOURCE_XML_URL_TEMPLATE_PROPERTY =
71                                            "ResourceTemplate.xml";
72     private static final String SERVICE_XML_URL_TEMPLATE_PROPERTY =
73                                            "ServiceTemplate.xml";
74     private static final String AUTHORITY_XML_URL_TEMPLATE_PROPERTY =
75                                            "AuthorityTemplate.xml";
76     private static final String REGISTRY_XML_URL_TEMPLATE_PROPERTY =
77                                            "RegistryTemplate.xml";
78     private static final String SKYSERVICE_XML_URL_TEMPLATE_PROPERTY =
79                                            "SkyServiceTemplate.xml";
80     private static final String TABULARSKYSERVICE_XML_URL_TEMPLATE_PROPERTY =
81                                            "TabularSkyServiceTemplate.xml";
82     private static final String DATACOLLECTION_XML_URL_TEMPLATE_PROPERTY =
83                                            "DataCollectionTemplate.xml";   
84     
85     static {
86        if(conf == null) {
87           conf = org.astrogrid.config.SimpleConfig.getSingleton();
88        }      
89     }
90     
91  
92     /***
93      * Our action method.
94      *
95      */
96     public Map act(
97        Redirector redirector, 
98        SourceResolver resolver, 
99        Map objectModel, 
100       String source, 
101       Parameters params)
102       {
103       
104       //
105       // Get our current request and session.
106       Request request = ObjectModelHelper.getRequest(objectModel);
107       Session session = request.getSession();
108 
109       //put the main templates into an arraylsit to for displaying.
110       ArrayList mainQueryPieces = new ArrayList();
111       mainQueryPieces.add(RESOURCE_OPTION);
112       mainQueryPieces.add(SERVICE_OPTION);      
113       mainQueryPieces.add(ORGANISATION_OPTION);
114       mainQueryPieces.add(REGISTRY_OPTION);
115       mainQueryPieces.add(AUTHORITY_OPTION);
116       mainQueryPieces.add(SKYSERVICE_OPTION);
117       mainQueryPieces.add(TABULARSKYSERVICE_OPTION);
118       mainQueryPieces.add(DATACOLLECTION_OPTION);
119       request.setAttribute("MainQueryPieces",mainQueryPieces);
120       
121       if("true".equals(request.getParameter("setconfig"))) {
122          String configKey = request.getParameter("configkey");
123          String configVal = request.getParameter("configvalue");
124          System.out.println("changing configKey = " + configKey +
125                                 " and configVal = " + configVal);
126          conf.setProperty(configKey,configVal);
127       }//if
128       
129       //
130       //Create a new HashMap for our results.  Will be used to
131       //pass to the transformer (xsl page)
132       Map results = new HashMap();
133       return results;
134    }
135    
136    /***
137     * Method used by Query and Admin components to get a particular template
138     * based off of a request object.
139     * @param request
140     * @deprecated Not to use anymore getting this information from the resources
141     *            (jar file now) not the config.
142     * @return
143     */
144    public static String getTemplate(Request request) {
145 
146       String mainElem = request.getParameter(PARAM_MAIN_ELEMENT);
147 
148       String templateURL = null;
149       if(RegistryOptionAction.ORGANISATION_OPTION.equals(mainElem)) {         
150          templateURL = conf.getString(ORGANISATION_XML_URL_TEMPLATE_PROPERTY);
151       }else if(RegistryOptionAction.RESOURCE_OPTION.equals(mainElem)) {
152          templateURL = conf.getString(RESOURCE_XML_URL_TEMPLATE_PROPERTY);
153       } else if(RegistryOptionAction.AUTHORITY_OPTION.equals(mainElem)) {
154          templateURL = conf.getString(AUTHORITY_XML_URL_TEMPLATE_PROPERTY);
155       }else if(RegistryOptionAction.REGISTRY_OPTION.equals(mainElem)) {
156          templateURL = conf.getString(REGISTRY_XML_URL_TEMPLATE_PROPERTY);
157       }else if(RegistryOptionAction.SKYSERVICE_OPTION.equals(mainElem)) {
158          templateURL = conf.getString(SKYSERVICE_XML_URL_TEMPLATE_PROPERTY);
159       }else if(RegistryOptionAction.TABULARSKYSERVICE_OPTION.equals(mainElem)) {
160          templateURL = conf.getString(
161                              TABULARSKYSERVICE_XML_URL_TEMPLATE_PROPERTY );
162       }else if(RegistryOptionAction.DATACOLLECTION_OPTION.equals(mainElem)) {
163          templateURL = conf.getString(DATACOLLECTION_XML_URL_TEMPLATE_PROPERTY);
164       }else if(RegistryOptionAction.SERVICE_OPTION.equals(mainElem)) {
165          templateURL = conf.getString(SERVICE_XML_URL_TEMPLATE_PROPERTY);
166       }
167       return templateURL;
168    }     
169 }