01: // Copyright 2006, 2007 The Apache Software Foundation
02: //
03: // Licensed under the Apache License, Version 2.0 (the "License");
04: // you may not use this file except in compliance with the License.
05: // You may obtain a copy of the License at
06: //
07: // http://www.apache.org/licenses/LICENSE-2.0
08: //
09: // Unless required by applicable law or agreed to in writing, software
10: // distributed under the License is distributed on an "AS IS" BASIS,
11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12: // See the License for the specific language governing permissions and
13: // limitations under the License.
14:
15: package org.apache.tapestry.runtime;
16:
17: import org.apache.tapestry.ComponentEventHandler;
18: import org.apache.tapestry.ComponentResourcesCommon;
19:
20: /**
21: * An event that may originate in application logic, or as a result of a client interaction (a GET
22: * or POST from the client).
23: *
24: * @see ComponentResourcesCommon#triggerEvent(String, Object[],
25: * org.apache.tapestry.ComponentEventHandler)
26: * @see ComponentEventHandler
27: */
28: public interface ComponentEvent extends Event {
29: /**
30: * Returns true if the component event's type matches any of the provided values. Comparison is
31: * caseless.
32: *
33: * @param eventType
34: * @return true if there is any match
35: */
36: boolean matchesByEventType(String eventType);
37:
38: /**
39: * Returns true if the originating component matches any of the components identified by their
40: * ids. This filter is only relevent in the immediate container of the originating component (it
41: * will never match at higher levels). Comparison is caseless.
42: */
43: boolean matchesByComponentId(String componentId);
44:
45: /**
46: * Returns true if the event context contains the specified number of parameters (or more).
47: *
48: * @param parameterCount number of parameters in the event handler method
49: * @return true if the event can
50: */
51: boolean matchesByParameterCount(int parameterCount);
52:
53: /**
54: * Coerces a context value to a particular type. The context is an array of objects; typically
55: * it is an array of strings of extra path information encoded into the action URL.
56: *
57: * @param <T>
58: * @param index
59: * the index of the context value
60: * @param desiredTypeName
61: * the desired type
62: * @param methodDescription
63: * the method for which the conversion will take place (used if reporting an error)
64: * @return the coerced value (a wrapper type if the desired type is a primitive)
65: */
66: Object coerceContext(int index, String desiredTypeName);
67:
68: /** Returns the raw context as a (possibly empty) array. */
69: Object[] getContext();
70: }
|