01: /* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
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.acegisecurity.vote;
16:
17: import java.lang.reflect.Method;
18:
19: /**
20: * This is a strategy interface for determining which parts of a method invocation
21: * are labeled. Not all arguments are necessarily labeled. This offers a plugabble
22: * mechanism to define various ways to label data.
23: *
24: * @author Greg Turnquist
25: * @version $Id: LabelParameterStrategy.java 1784 2007-02-24 21:00:24Z luke_t $
26: */
27: public interface LabelParameterStrategy {
28: //~ Methods ========================================================================================================
29:
30: /**
31: * Get the actual label associated with the argument. NOTE: This currently only supports one label per
32: * argument.
33: *
34: * @param method
35: * @param arg
36: *
37: * @return string value of the label
38: */
39: String getLabel(Method method, Object arg);
40:
41: /**
42: * Evaluate if one particular argument is labeled. The context of the method is also provided should that
43: * have bearing on the label.
44: *
45: * @param method
46: * @param arg
47: *
48: * @return boolean
49: */
50: boolean isLabeled(Method method, Object arg);
51: }
|