1 //
2 //Copyright (c) 2003, Caltha - Gajda, Krzewski, Mach, Potempski Sp.J.
3 //All rights reserved.
4 //
5 //Redistribution and use in source and binary forms, with or without modification,
6 //are permitted provided that the following conditions are met:
7 //
8 //* Redistributions of source code must retain the above copyright notice,
9 //this list of conditions and the following disclaimer.
10 //* Redistributions in binary form must reproduce the above copyright notice,
11 //this list of conditions and the following disclaimer in the documentation
12 //and/or other materials provided with the distribution.
13 //* Neither the name of the Caltha - Gajda, Krzewski, Mach, Potempski Sp.J.
14 //nor the names of its contributors may be used to endorse or promote products
15 //derived from this software without specific prior written permission.
16 //
17 //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 //AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 //WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 //IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
21 //INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
22 //BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
23 //OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24 //WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25 //ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26 //POSSIBILITY OF SUCH DAMAGE.
27 //
28
29 package org.objectledge.web.mvc.components;
30
31 import org.objectledge.context.Context;
32 import org.objectledge.templating.tools.ContextToolFactory;
33 import org.objectledge.web.mvc.finders.MVCClassFinder;
34 import org.objectledge.web.mvc.finders.MVCTemplateFinder;
35 import org.objectledge.web.mvc.security.SecurityHelper;
36
37 /**
38 * Component tools factory.
39 *
40 * @author <a href="mailto:dgajda@caltha.pl">Damian Gajda</a>
41 * @version $Id: ComponentToolFactory.java,v 1.7 2005/07/22 17:25:52 pablo Exp $
42 */
43 public class ComponentToolFactory implements ContextToolFactory
44 {
45 /*** The context. */
46 protected Context context;
47 /*** The class finder for finding component objects. */
48 protected MVCClassFinder classFinder;
49 /*** The template finder for finding component templates. */
50 protected MVCTemplateFinder templateFinder;
51 /*** SecurityHelper for access checking. */
52 protected SecurityHelper securityHelper;
53
54 /***
55 * Component constructor.
56 *
57 * @param context the context.
58 * @param classFinder the class finder.
59 * @param templateFinder the template finder.
60 * @param securityHelper security helper for access checking
61 */
62 public ComponentToolFactory(Context context, MVCClassFinder classFinder,
63 MVCTemplateFinder templateFinder, SecurityHelper securityHelper)
64 {
65 this.context = context;
66 this.classFinder = classFinder;
67 this.templateFinder = templateFinder;
68 this.securityHelper = securityHelper;
69 }
70
71 /***
72 * {@inheritDoc}
73 */
74 public Object getTool()
75 {
76 return new ComponentTool(context, classFinder, templateFinder, securityHelper);
77 }
78
79 /***
80 * {@inheritDoc}
81 */
82 public void recycleTool(Object tool)
83 {
84 // TODO recycle object when pooling available.
85 }
86
87 /***
88 * {@inheritDoc}
89 */
90 public String getKey()
91 {
92 return "component";
93 }
94
95 }