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
106 Request request = ObjectModelHelper.getRequest(objectModel);
107 Session session = request.getSession();
108
109
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 }
128
129
130
131
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 }