KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > springframework > beans > PropertyEditorRegistry


1 /*
2  * Copyright 2002-2006 the original author or authors.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package org.springframework.beans;
18
19 import java.beans.PropertyEditor JavaDoc;
20
21 /**
22  * Encapsulates methods for registering JavaBeans {@link PropertyEditor PropertyEditors}.
23  * This is the central interface that a {@link PropertyEditorRegistrar} operates on.
24  *
25  * <p>Extended by {@link BeanWrapper}; implemented by {@link BeanWrapperImpl}
26  * and {@link org.springframework.validation.DataBinder}.
27  *
28  * @author Juergen Hoeller
29  * @since 1.2.6
30  * @see PropertyEditorRegistrar
31  * @see BeanWrapper
32  * @see BeanWrapperImpl
33  * @see org.springframework.validation.DataBinder
34  */

35 public interface PropertyEditorRegistry {
36
37     /**
38      * Register the given custom property editor for all properties
39      * of the given type.
40      * @param requiredType type of the property
41      * @param propertyEditor editor to register
42      */

43     void registerCustomEditor(Class JavaDoc requiredType, PropertyEditor JavaDoc propertyEditor);
44
45     /**
46      * Register the given custom property editor for the given type and
47      * property, or for all properties of the given type.
48      * <p>If the property path denotes an array or Collection property,
49      * the editor will get applied either to the array/Collection itself
50      * (the {@link PropertyEditor} has to create an array or Collection value) or
51      * to each element (the <code>PropertyEditor</code> has to create the element type),
52      * depending on the specified required type.
53      * <p>Note: Only one single registered custom editor per property path
54      * is supported. In the case of a Collection/array, do not register an editor
55      * for both the Collection/array and each element on the same property.
56      * <p>For example, if you wanted to register an editor for "items[n].quantity"
57      * (for all values n), you would use "items.quality" as the value of the
58      * 'propertyPath' argument to this method.
59      * @param requiredType type of the property (can be <code>null</code> if a property
60      * is given but should be specified in any case for consistency checking)
61      * @param propertyPath path of the property (name or nested path), or
62      * <code>null</code> if registering an editor for all properties of the given type
63      * @param propertyEditor editor to register
64      */

65     void registerCustomEditor(Class JavaDoc requiredType, String JavaDoc propertyPath, PropertyEditor JavaDoc propertyEditor);
66
67     /**
68      * Find a custom property editor for the given type and property.
69      * @param requiredType type of the property (can be <code>null</code> if a property
70      * is given but should be specified in any case for consistency checking)
71      * @param propertyPath path of the property (name or nested path), or
72      * <code>null</code> if looking for an editor for all properties of the given type
73      * @return the registered editor, or <code>null</code> if none
74      */

75     PropertyEditor JavaDoc findCustomEditor(Class JavaDoc requiredType, String JavaDoc propertyPath);
76
77 }
78
Popular Tags