]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/execution/ListModulesDescriptors.java
Add license headers
[gpl/argeo-slc.git] / runtime / org.argeo.slc.server / src / main / java / org / argeo / slc / web / mvc / execution / ListModulesDescriptors.java
1 /*
2 * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 package org.argeo.slc.web.mvc.execution;
18
19 import java.util.Comparator;
20 import java.util.List;
21 import java.util.SortedSet;
22 import java.util.TreeSet;
23
24 import javax.servlet.http.HttpServletRequest;
25 import javax.servlet.http.HttpServletResponse;
26
27 import org.argeo.slc.execution.ExecutionModuleDescriptor;
28 import org.argeo.slc.msg.ObjectList;
29 import org.argeo.slc.runtime.SlcAgent;
30 import org.argeo.slc.runtime.SlcAgentFactory;
31 import org.argeo.slc.web.mvc.AbstractServiceController;
32 import org.springframework.web.servlet.ModelAndView;
33
34 /** . */
35 public class ListModulesDescriptors extends AbstractServiceController {
36 private SlcAgentFactory agentFactory;
37
38 @Override
39 protected void handleServiceRequest(HttpServletRequest request,
40 HttpServletResponse response, ModelAndView modelAndView)
41 throws Exception {
42
43 // TODO: use centralized agentId property (from MsgConstants)?
44 String agentId = request.getParameter("agentId");
45
46 SlcAgent slcAgent = agentFactory.getAgent(agentId);
47
48 List<ExecutionModuleDescriptor> descriptors = slcAgent
49 .listExecutionModuleDescriptors();
50 SortedSet<ExecutionModuleDescriptor> set = new TreeSet<ExecutionModuleDescriptor>(
51 new Comparator<ExecutionModuleDescriptor>() {
52
53 public int compare(ExecutionModuleDescriptor md1,
54 ExecutionModuleDescriptor md2) {
55 String str1 = md1.getLabel() != null ? md1.getLabel()
56 : md1.getName();
57 String str2 = md2.getLabel() != null ? md2.getLabel()
58 : md2.getName();
59 return str1.compareTo(str2);
60 }
61 });
62 set.addAll(descriptors);
63
64 modelAndView.addObject(new ObjectList(set));
65 }
66
67 public void setAgentFactory(SlcAgentFactory agentFactory) {
68 this.agentFactory = agentFactory;
69 }
70
71 }