1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.aggregator.impl;
18
19 import java.io.IOException;
20 import java.util.HashMap;
21
22 import org.apache.jetspeed.PortalReservedParameters;
23 import org.apache.jetspeed.aggregator.PortletAggregator;
24 import org.apache.jetspeed.aggregator.PortletRenderer;
25 import org.apache.jetspeed.exception.JetspeedException;
26 import org.apache.jetspeed.om.page.ContentFragment;
27 import org.apache.jetspeed.om.page.ContentFragmentImpl;
28 import org.apache.jetspeed.om.page.Fragment;
29 import org.apache.jetspeed.request.RequestContext;
30
31 /***
32 * PortletAggregator builds the content required to render a single portlet.
33 *
34 * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
35 * @version $Id: PortletAggregatorImpl.java 543171 2007-05-31 15:55:09Z ate $
36 */
37 public class PortletAggregatorImpl implements PortletAggregator
38 {
39 private PortletRenderer renderer;
40
41 public PortletAggregatorImpl(PortletRenderer renderer)
42 {
43 this.renderer = renderer;
44 }
45
46
47
48
49 public void build(RequestContext context) throws JetspeedException, IOException
50 {
51
52
53 String entity = context.getRequestParameter(PortalReservedParameters.PORTLET_ENTITY);
54 if (entity == null)
55 {
56 entity = (String)context.getAttribute(PortalReservedParameters.PORTLET_ENTITY);
57 }
58 if (entity == null)
59 {
60 return;
61 }
62 Fragment fragment = context.getPage().getFragmentById(entity);
63 if (fragment == null)
64 {
65 String name = context.getRequestParameter(PortalReservedParameters.PORTLET);
66 if (name == null)
67 {
68 name = (String)context.getAttribute(PortalReservedParameters.PORTLET);
69 }
70 if (name == null)
71 {
72 return;
73 }
74 fragment = new PortletAggregatorFragmentImpl(entity);
75 fragment.setType(Fragment.PORTLET);
76 fragment.setName(name);
77 }
78 ContentFragment contentFragment = new ContentFragmentImpl(fragment, new HashMap());
79 renderer.renderNow(contentFragment, context);
80 context.getResponse().getWriter().write(contentFragment.getRenderedContent());
81 }
82
83 }