01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
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: private static final String KEY_PREFIX = "PortletApplication::";
35: private static final String ID = "ID";
36:
37: {
38: fields.add(ID);
39: }
40:
41: /**
42: * @see org.apache.jetspeed.search.ObjectHandler#parseObject(java.lang.Object)
43: */
44: public ParsedObject parseObject(Object o) {
45: BaseParsedObject result = null;
46:
47: if (o instanceof MutablePortletApplication) {
48: result = new BaseParsedObject();
49: MutablePortletApplication pa = (MutablePortletApplication) o;
50:
51: result.setDescription(pa.getDescription());
52: result.setTitle(pa.getName());
53: result.setKey(KEY_PREFIX + pa.getName());
54: result
55: .setType(ParsedObject.OBJECT_TYPE_PORTLET_APPLICATION);
56: result.setClassName(pa.getClass().getName());
57:
58: MultiHashMap fieldMap = new MultiHashMap();
59: fieldMap.put(ID, pa.getName());
60:
61: Collection fields = pa.getMetadata().getFields();
62: for (Iterator fieldIter = fields.iterator(); fieldIter
63: .hasNext();) {
64: LocalizedField field = (LocalizedField) fieldIter
65: .next();
66: fieldMap.put(field.getName(), field.getValue());
67: //this.fields.add(field.getName());
68: }
69:
70: result.setFields(fieldMap);
71: }
72:
73: return result;
74: }
75:
76: }
|