1 package org.apache.turbine.services.intake;
2
3 /* ====================================================================
4 * The Apache Software License, Version 1.1
5 *
6 * Copyright (c) 2001 The Apache Software Foundation. All rights
7 * reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
11 * are met:
12 *
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 *
16 * 2. Redistributions in binary form must reproduce the above copyright
17 * notice, this list of conditions and the following disclaimer in
18 * the documentation and/or other materials provided with the
19 * distribution.
20 *
21 * 3. The end-user documentation included with the redistribution,
22 * if any, must include the following acknowledgment:
23 * "This product includes software developed by the
24 * Apache Software Foundation (http://www.apache.org/)."
25 * Alternately, this acknowledgment may appear in the software itself,
26 * if and wherever such third-party acknowledgments normally appear.
27 *
28 * 4. The names "Apache" and "Apache Software Foundation" and
29 * "Apache Turbine" must not be used to endorse or promote products
30 * derived from this software without prior written permission. For
31 * written permission, please contact apache@apache.org.
32 *
33 * 5. Products derived from this software may not be called "Apache",
34 * "Apache Turbine", nor may "Apache" appear in their name, without
35 * prior written permission of the Apache Software Foundation.
36 *
37 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
38 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
39 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
40 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
41 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
42 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
43 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
44 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
45 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
46 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
47 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
48 * SUCH DAMAGE.
49 * ====================================================================
50 *
51 * This software consists of voluntary contributions made by many
52 * individuals on behalf of the Apache Software Foundation. For more
53 * information on the Apache Software Foundation, please see
54 * <http://www.apache.org/>.
55 */
56
57 import java.lang.reflect.Method;
58 import org.apache.turbine.services.intake.model.Group;
59 import org.apache.turbine.util.TurbineException;
60
61 /***
62 * This service provides access to input processing objects based
63 * on an XML specification.
64 *
65 * @author <a href="mailto:jmcnally@collab.net">John McNally</a>
66 * @version $Id: IntakeService.java,v 1.3 2002/07/11 16:53:28 mpoeschl Exp $
67 */
68 public interface IntakeService
69 {
70 /***
71 * The key under which this service is stored in TurbineServices.
72 */
73 public static final String SERVICE_NAME = "IntakeService";
74
75 /***
76 * The property specifying the location of the xml specification.
77 */
78 public static final String XML_PATH = "xml.path";
79
80 /***
81 * The default pool capacity.
82 */
83 public static final int DEFAULT_POOL_CAPACITY = 1024;
84
85 /***
86 * Gets an instance of a named group either from the pool
87 * or by calling the Factory Service if the pool is empty.
88 *
89 * @param groupName the name of the group.
90 * @return a Group instance.
91 * @throws TurbineException if recycling fails.
92 */
93 public Group getGroup(String groupName)
94 throws TurbineException;
95
96 /***
97 * Gets an instance of a named group either from the pool
98 * or by calling the Factory Service if the pool is empty and
99 * then initialize it using the ParameterParser looking for
100 * a NEW id.
101 *
102 * @param groupName the name of the group.
103 * @param pp the request parameters that may contain matching keys
104 * @return a Group instance.
105 * @throws TurbineException if recycling fails.
106 * /
107 public Group getGroup(String groupName, ParameterParser pp)
108 throws Exception;
109
110 /**
111 * Gets an instance of a named group either from the pool
112 * or by calling the Factory Service if the pool is empty and
113 * then initialize it using the ParameterParser looking for id.
114 *
115 * @param groupName the name of the group.
116 * @param pp the request parameters that may contain matching keys
117 * @return a Group instance.
118 * @throws TurbineException if recycling fails.
119 * /
120 public Group getGroup(String groupName, ParameterParser pp, String id)
121 throws Exception;
122 */
123
124 /***
125 * Puts a group back to the pool.
126 * @param instance the object instance to recycle.
127 * @return true if the instance was accepted.
128 */
129 public boolean releaseGroup(Group instance);
130
131 /***
132 * Gets the capacity of the pool for a named group.
133 *
134 * @param groupName the name of the group.
135 */
136 public int getCapacity(String groupName);
137
138 /***
139 * Sets the capacity of the pool for a named group.
140 * Note that the pool will be cleared after the change.
141 *
142 * @param groupName the name of the group.
143 * @param capacity the new capacity.
144 */
145 public void setCapacity(String groupName,
146 int capacity);
147
148 /***
149 * Gets the current size of the pool for a named group.
150 *
151 * @param groupName the name of the group.
152 */
153 public int getSize(String groupName);
154
155 /***
156 * Clears instances of a named group from the pool.
157 *
158 * @param groupName the name of the group.
159 */
160 public void clearPool(String groupName);
161
162 /***
163 * Clears all instances from the pool.
164 */
165 public void clearPool();
166
167 /***
168 * Names of all the defined groups.
169 *
170 * @return array of names.
171 */
172 public String[] getGroupNames();
173
174 /***
175 * Gets the key (usually a short identifier) for a group.
176 *
177 * @param groupName the name of the group.
178 * @return the key.
179 */
180 public String getGroupKey(String groupName);
181
182 /***
183 * Gets the group name given its key.
184 *
185 * @param the the key.
186 * @return groupName the name of the group.
187 */
188 public String getGroupName(String groupKey);
189
190 /***
191 * Gets the Method that can be used to set a property.
192 *
193 * @param className the name of the object.
194 * @param propName the name of the property.
195 * @return the setter.
196 */
197 public Method getFieldSetter(String className, String propName);
198
199 /***
200 * Gets the Method that can be used to get a property value.
201 *
202 * @param className the name of the object.
203 * @param propName the name of the property.
204 * @return the getter.
205 */
206 public Method getFieldGetter(String className, String propName);
207
208 }
This page was automatically generated by Maven