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.cocoon.portal.layout.renderer.impl;
18:
19: import org.apache.cocoon.portal.PortalService;
20: import org.apache.cocoon.portal.layout.Layout;
21: import org.apache.cocoon.portal.layout.impl.LinkLayout;
22: import org.xml.sax.ContentHandler;
23: import org.xml.sax.SAXException;
24:
25: /**
26: * Include a linked layout in the generated XML.
27: *
28: * <h2>Applicable to:</h2>
29: * <ul>
30: * <li>{@link org.apache.cocoon.portal.layout.impl.LinkLayout}</li>
31: * </ul>
32: *
33: * @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
34: * @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
35: * @author <a href="mailto:juergen.seitz@basf-it-services.com">Jürgen Seitz</a>
36: *
37: * @version CVS $Id: DefaultLinkRenderer.java 433543 2006-08-22 06:22:54Z crossley $
38: */
39: public class DefaultLinkRenderer extends AbstractRenderer {
40:
41: public void process(Layout layout, PortalService service,
42: ContentHandler handler) throws SAXException {
43: if (layout instanceof LinkLayout) {
44: String layoutKey = (String) layout
45: .getAspectData("link-layout-key");
46: String layoutId = (String) layout
47: .getAspectData("link-layout-id");
48: if (layoutKey == null && layoutId == null) {
49: // get default values
50: layoutKey = ((LinkLayout) layout).getLayoutKey();
51: layoutId = ((LinkLayout) layout).getLayoutId();
52: }
53: this .processLayout(service.getComponentManager()
54: .getProfileManager().getPortalLayout(layoutKey,
55: layoutId), service, handler);
56: } else {
57: throw new SAXException(
58: "Wrong layout type, LinkLayout expected: "
59: + layout.getClass().getName());
60: }
61: }
62:
63: }
|