01: package com.opensymphony.sitemesh.compatability;
02:
03: import com.opensymphony.module.sitemesh.DecoratorMapper;
04: import com.opensymphony.sitemesh.Content;
05: import com.opensymphony.sitemesh.Decorator;
06: import com.opensymphony.sitemesh.DecoratorSelector;
07: import com.opensymphony.sitemesh.SiteMeshContext;
08: import com.opensymphony.sitemesh.webapp.SiteMeshWebAppContext;
09: import com.opensymphony.sitemesh.webapp.decorator.NoDecorator;
10:
11: /**
12: * Adapts a SiteMesh 2 {@link DecoratorMapper} to a SiteMesh 2 {@link DecoratorSelector}.
13: *
14: * @author Joe Walnes
15: * @since SiteMesh 3
16: */
17: public class DecoratorMapper2DecoratorSelector implements
18: DecoratorSelector {
19:
20: private final DecoratorMapper decoratorMapper;
21:
22: public DecoratorMapper2DecoratorSelector(
23: DecoratorMapper decoratorMapper) {
24: this .decoratorMapper = decoratorMapper;
25: }
26:
27: public Decorator selectDecorator(Content content,
28: SiteMeshContext context) {
29: SiteMeshWebAppContext webAppContext = (SiteMeshWebAppContext) context;
30: com.opensymphony.module.sitemesh.Decorator decorator = decoratorMapper
31: .getDecorator(webAppContext.getRequest(),
32: new Content2HTMLPage(content));
33: if (decorator == null || decorator.getPage() == null) {
34: return new NoDecorator();
35: } else {
36: return new OldDecorator2NewDecorator(decorator);
37: }
38: }
39: }
|