1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.search.handlers.pam;
18
19 import java.util.Collection;
20 import java.util.Iterator;
21
22 import org.apache.commons.collections.MultiHashMap;
23 import org.apache.jetspeed.om.common.LocalizedField;
24 import org.apache.jetspeed.om.common.portlet.MutablePortletApplication;
25 import org.apache.jetspeed.search.AbstractObjectHandler;
26 import org.apache.jetspeed.search.BaseParsedObject;
27 import org.apache.jetspeed.search.ParsedObject;
28
29 /***
30 *
31 * @author <a href="mailto: jford@apache.org">Jeremy Ford</a>
32 */
33 public class PortletApplicationHandler extends AbstractObjectHandler
34 {
35 private static final String KEY_PREFIX = "PortletApplication::";
36 private static final String ID = "ID";
37
38 {
39 fields.add(ID);
40 }
41
42 /***
43 * @see org.apache.jetspeed.search.ObjectHandler#parseObject(java.lang.Object)
44 */
45 public ParsedObject parseObject(Object o)
46 {
47 BaseParsedObject result = null;
48
49 if(o instanceof MutablePortletApplication)
50 {
51 result = new BaseParsedObject();
52 MutablePortletApplication pa = (MutablePortletApplication) o;
53
54 result.setDescription(pa.getDescription());
55 result.setTitle(pa.getName());
56 result.setKey(KEY_PREFIX + pa.getName());
57 result.setType(ParsedObject.OBJECT_TYPE_PORTLET_APPLICATION);
58 result.setClassName(pa.getClass().getName());
59
60 MultiHashMap fieldMap = new MultiHashMap();
61 fieldMap.put(ID, pa.getName());
62
63 Collection fields = pa.getMetadata().getFields();
64 for (Iterator fieldIter = fields.iterator(); fieldIter.hasNext();)
65 {
66 LocalizedField field = (LocalizedField) fieldIter.next();
67 fieldMap.put(field.getName(), field.getValue());
68
69 }
70
71 result.setFields(fieldMap);
72 }
73
74 return result;
75 }
76
77 }