01: /*
02: * Copyright 2005 Joe Walker
03: *
04: * Licensed under the Apache License, Version 2.0 (the "License");
05: * you may not use this file except in compliance with the License.
06: * You may obtain a copy of the License at
07: *
08: * http://www.apache.org/licenses/LICENSE-2.0
09: *
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: package org.directwebremoting.extend;
17:
18: import java.util.Map;
19:
20: /**
21: * Additions to Converter that allow objects to have names that
22: * @author Joe Walker [joe at getahead dot ltd dot uk]
23: */
24: public interface NamedConverter extends Converter {
25: /**
26: * Get a map of property names to implementations of {@link Property}.
27: * <p>HibernateBeanConverter (and maybe others) may want to provide
28: * alternate versions of bean.getClass(), and we may wish to fake or hide
29: * properties in some cases.
30: * <p>This implementation is preferred above the alternate:
31: * {@link #getPropertyMapFromClass(Class, boolean, boolean)} because it
32: * potentially retains important extra type information.
33: * @param example The object to find bean info from
34: * @param readRequired The properties returned must be readable
35: * @param writeRequired The properties returned must be writeable
36: * @return An array of PropertyDescriptors describing the beans properties
37: * @see #getPropertyMapFromClass(Class, boolean, boolean)
38: * @throws MarshallException If the introspection fails
39: */
40: Map<String, Property> getPropertyMapFromObject(Object example,
41: boolean readRequired, boolean writeRequired)
42: throws MarshallException;
43:
44: /**
45: * Get a map of property names to implementations of {@link Property}.
46: * <p>HibernateBeanConverter (and maybe others) may want to provide
47: * alternate versions of bean.getClass(), and we may wish to fake or hide
48: * properties in some cases.
49: * <p>If you have a real object to investigate then it is probably better
50: * to call {@link #getPropertyMapFromObject(Object, boolean, boolean)}
51: * because that version can take into accound extra runtime type info.
52: * @param type The class to find bean info from
53: * @param readRequired The properties returned must be readable
54: * @param writeRequired The properties returned must be writeable
55: * @return An array of PropertyDescriptors describing the beans properties
56: * @see #getPropertyMapFromObject(Object, boolean, boolean)
57: * @throws MarshallException If the introspection fails
58: */
59: Map<String, Property> getPropertyMapFromClass(Class<?> type,
60: boolean readRequired, boolean writeRequired)
61: throws MarshallException;
62:
63: /**
64: * @return Returns the instanceType.
65: */
66: Class<?> getInstanceType();
67:
68: /**
69: * @param instanceType The instanceType to set.
70: */
71: void setInstanceType(Class<?> instanceType);
72:
73: /**
74: * Accessor for the javascript class name for the converted objects.
75: * @return The Javascript name
76: */
77: String getJavascript();
78:
79: /**
80: * Accessor for the javascript class name for the converted objects.
81: * @param javascript The Javascript name
82: */
83: void setJavascript(String javascript);
84: }
|