• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package org.apache.velocity.util.introspection;
2 
3 /*
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  *   http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  */
21 
22 /**
23  *  Interface used for setting values that appear to be properties in
24  *  Velocity.  Ex.
25  *
26  *      #set($foo.bar = "hello")
27  *
28  * @author <a href="mailto:geirm@optonline.net">Geir Magnusson Jr.</a>
29  * @version $Id$
30  */
31 public interface VelPropertySet
32 {
33     /**
34      *  method used to set the value in the object
35      *
36      *  @param o Object on which the method will be called with the arg
37      *  @param arg value to be set
38      *  @return the value returned from the set operation (impl specific)
39      *  @throws Exception
40      */
invoke(Object o, Object arg)41     Object invoke(Object o, Object arg) throws Exception;
42 
43     /**
44      *  specifies if this VelPropertySet is cacheable and able to be
45      *  reused for this class of object it was returned for
46      *
47      *  @return true if can be reused for this class, false if not
48      */
isCacheable()49     boolean isCacheable();
50 
51     /**
52      *  returns the method name used to set this 'property'
53      * @return The method name used to set this 'property'
54      */
getMethodName()55     String getMethodName();
56 }
57