1 package org.apache.turbine.services.intake;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import java.beans.IntrospectionException;
20
21 import java.lang.reflect.Method;
22
23 import org.apache.turbine.services.TurbineServices;
24 import org.apache.turbine.services.intake.model.Group;
25
26 /***
27 * This is a Facade class for IntakeService.
28 *
29 * This class provides static methods that call related methods of the
30 * implementation of the IntakeService used by the System, according to
31 * the settings in TurbineResources.
32 *
33 * @author <a href="mailto:jmcnally@collab.net">John McNally</a>
34 * @author <a href="mailto:quintonm@bellsouth.net">Quinton McCombs</a>
35 * @version $Id: TurbineIntake.java 264148 2005-08-29 14:21:04Z henning $
36 */
37 public abstract class TurbineIntake
38 {
39 /***
40 * Gets an instance of a named group either from the pool
41 * or by calling the Factory Service if the pool is empty.
42 *
43 * @param groupName the name of the group.
44 * @return a Group instance.
45 * @throws IntakeException if recycling fails.
46 */
47 public static Group getGroup(String groupName)
48 throws IntakeException
49 {
50 if (groupName == null)
51 {
52 throw new IntakeException(
53 "TurbineIntake.getGroup(groupName) is null");
54 }
55 return getService().getGroup(groupName);
56 }
57
58 /***
59 * Puts a group back to the pool.
60 * @param instance the object instance to recycle.
61 * @throws IntakeException A non existant group was passed
62 */
63 public static void releaseGroup(Group instance)
64 throws IntakeException
65 {
66 getService().releaseGroup(instance);
67 }
68
69 /***
70 * Gets the current size of the pool for a named group.
71 *
72 * @param groupName the name of the group.
73 * @return the current pool size
74 * @throws IntakeException A non existant group was passed
75 */
76 public static int getSize(String groupName)
77 throws IntakeException
78 {
79 return getService().getSize(groupName);
80 }
81
82 /***
83 * Names of all the defined groups.
84 *
85 * @return array of names.
86 */
87 public static String[] getGroupNames()
88 {
89 return getService().getGroupNames();
90 }
91
92 /***
93 * Gets the key (usually a short identifier) for a group.
94 *
95 * @param groupName the name of the group.
96 * @return the the key.
97 */
98 public static String getGroupKey(String groupName)
99 {
100 return getService().getGroupKey(groupName);
101 }
102
103 /***
104 * Gets the group name given its key.
105 *
106 * @param groupKey the key.
107 * @return groupName the name of the group.
108 */
109 public static String getGroupName(String groupKey)
110 {
111 return getService().getGroupName(groupKey);
112 }
113
114 /***
115 * Gets the Method that can be used to set a property.
116 *
117 * @param className the name of the object.
118 * @param propName the name of the property.
119 * @return the setter.
120 * @throws ClassNotFoundException
121 * @throws IntrospectionException
122 */
123 public static Method getFieldSetter(String className, String propName)
124 throws IntrospectionException, ClassNotFoundException
125 {
126 return getService().getFieldSetter(className, propName);
127 }
128
129 /***
130 * Gets the Method that can be used to get a property value.
131 *
132 * @param className the name of the object.
133 * @param propName the name of the property.
134 * @return the getter.
135 * @throws ClassNotFoundException
136 * @throws IntrospectionException
137 */
138 public static Method getFieldGetter(String className, String propName)
139 throws IntrospectionException, ClassNotFoundException
140 {
141 return getService().getFieldGetter(className, propName);
142 }
143
144 /***
145 * Utility method for accessing the service
146 * implementation
147 *
148 * @return a IntakeService implementation instance
149 */
150 private static IntakeService getService()
151 {
152 return (IntakeService) TurbineServices
153 .getInstance().getService(IntakeService.SERVICE_NAME);
154 }
155
156 }
157
158
159
160
161
162
163
164
165
166