Top Description Inners Fields Constructors Methods
org.springframework.cglib.beans

public abstract Class BeanMap

extends Object
implements Map
Class Inheritance
All Implemented Interfaces
java.util.Map
Annotations
@SuppressWarnings:rawtypes, unchecked
Imports
java.security.ProtectionDomain, java.util.ArrayList, .Collection, .Collections, .HashMap, .Iterator, .List, .Map, .Objects, .Set, org.springframework.asm.ClassVisitor, org.springframework.cglib.core.AbstractClassGenerator, .KeyFactory, .ReflectUtils

A Map-based view of a JavaBean. The default set of keys is the union of all property names (getters or setters). An attempt to set a read-only property will be ignored, and write-only properties will be returned as null. Removal of objects is not a supported (the key set is fixed).
Author
Chris Nokleberg

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class

Field Summary

Modifier and TypeField and Description
protected Object
public static final int
REQUIRE_GETTER

Limit the properties reflected in the key set of the map to readable properties.

public static final int
REQUIRE_SETTER

Limit the properties reflected in the key set of the map to writable properties.

Constructor Summary

AccessConstructor and Description
protected
protected

Method Summary

Modifier and TypeMethod and Description
public void
clear()

Implements java.util.Map.clear.

Removes all of the mappings from this map (optional operation).

public boolean
containsKey(Object
key whose presence in this map is to be tested
key
)

Implements java.util.Map.containsKey.

Returns true if this map contains a mapping for the specified key.

public boolean
containsValue(Object
value whose presence in this map is to be tested
value
)

Implements java.util.Map.containsValue.

Returns true if this map maps one or more keys to the specified value.

public static BeanMap

Returns:

a new BeanMap instance
create
(Object
the JavaBean underlying the map
bean
)

Helper method to create a new BeanMap.

public Set<E>
entrySet()

Implements java.util.Map.entrySet.

Returns a Set view of the mappings contained in this map.

public boolean
equals(Object
object to be compared for equality with this map
o
)

Overrides java.lang.Object.equals.

Implements java.util.Map.equals.

Compares the specified object with this map for equality.

public Object
get(Object
the key whose associated value is to be returned
key
)

Implements java.util.Map.get.

Returns the value to which the specified key is mapped, or null if this map contains no mapping for the key.

public abstract Object

Returns:

the current value, or null if there is no matching property
get
(Object
the bean to query; must be compatible with the type of this BeanMap
bean
,
Object
must be a String
key
)

Get the property of a bean.

public Object

Returns:

the current JavaBean
getBean
()

Return the bean currently in use by this map.

public abstract Class<T>

Returns:

the type of the property, or null if the property does not exist
getPropertyType
(String
the name of the JavaBean property
name
)

Get the type of a property.

public int
hashCode()

Overrides java.lang.Object.hashCode.

Implements java.util.Map.hashCode.

Returns the hash code value for this map.

public boolean
isEmpty()

Implements java.util.Map.isEmpty.

Returns true if this map contains no key-value mappings.

public abstract BeanMap

Returns:

a new BeanMap instance
newInstance
(Object
the JavaBean underlying the map
bean
)

Create a new BeanMap instance using the specified bean.

public Object
put(Object
key with which the specified value is to be associated
key
,
Object
value to be associated with the specified key
value
)

Implements java.util.Map.put.

Associates the specified value with the specified key in this map (optional operation).

public abstract Object

Returns:

the old value, if there was one, or null
put
(Object bean, Object
must be a String
key
,
Object value)

Set the property of a bean.

public void
putAll(Map<K, V>
mappings to be stored in this map
t
)

Implements java.util.Map.putAll.

Copies all of the mappings from the specified map to this map (optional operation).

public Object
remove(Object
key whose mapping is to be removed from the map
key
)

Implements java.util.Map.remove.

Removes the mapping for a key from this map if it is present (optional operation).

public void
setBean(Object
the new JavaBean
bean
)

Change the underlying bean this map should use.

public int
size()

Implements java.util.Map.size.

Returns the number of key-value mappings in this map.

public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.

public Collection<E>
values()

Implements java.util.Map.values.

Returns a Collection view of the values contained in this map.

Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAllwaitwaitwait

Field Detail

beanback to summary
protected Object bean
REQUIRE_GETTERback to summary
public static final int REQUIRE_GETTER

Limit the properties reflected in the key set of the map to readable properties.

See Also
BeanMap.Generator#setRequire
REQUIRE_SETTERback to summary
public static final int REQUIRE_SETTER

Limit the properties reflected in the key set of the map to writable properties.

See Also
BeanMap.Generator#setRequire

Constructor Detail

BeanMapback to summary
protected BeanMap()
BeanMapback to summary
protected BeanMap(Object bean)

Method Detail

clearback to summary
public void clear()

Implements java.util.Map.clear.

Doc from java.util.Map.clear.

Removes all of the mappings from this map (optional operation). The map will be empty after this call returns.

Annotations
@Override
containsKeyback to summary
public boolean containsKey(Object key)

Implements java.util.Map.containsKey.

Doc from java.util.Map.containsKey.

Returns true if this map contains a mapping for the specified key. More formally, returns true if and only if this map contains a mapping for a key k such that Objects.equals(key, k). (There can be at most one such mapping.)

Parameters
key:Object

key whose presence in this map is to be tested

Returns:boolean

true if this map contains a mapping for the specified key

Annotations
@Override
containsValueback to summary
public boolean containsValue(Object value)

Implements java.util.Map.containsValue.

Doc from java.util.Map.containsValue.

Returns true if this map maps one or more keys to the specified value. More formally, returns true if and only if this map contains at least one mapping to a value v such that Objects.equals(value, v). This operation will probably require time linear in the map size for most implementations of the Map interface.

Parameters
value:Object

value whose presence in this map is to be tested

Returns:boolean

true if this map maps one or more keys to the specified value

Annotations
@Override
createback to summary
public static BeanMap create(Object bean)

Helper method to create a new BeanMap. For finer control over the generated instance, use a new instance of BeanMap.Generator instead of this static method.

Parameters
bean:Object

the JavaBean underlying the map

Returns:BeanMap

a new BeanMap instance

entrySetback to summary
public Set<E> entrySet()

Implements java.util.Map.entrySet.

Doc from java.util.Map.entrySet.

Returns a Set view of the mappings contained in this map. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. If the map is modified while an iteration over the set is in progress (except through the iterator's own remove operation, or through the setValue operation on a map entry returned by the iterator) the results of the iteration are undefined. The set supports element removal, which removes the corresponding mapping from the map, via the Iterator.remove, Set.remove, removeAll, retainAll and clear operations. It does not support the add or addAll operations.

Returns:Set<E>

a set view of the mappings contained in this map

Annotations
@Override
equalsback to summary
public boolean equals(Object o)

Overrides java.lang.Object.equals.

Implements java.util.Map.equals.

Doc from java.util.Map.equals.

Compares the specified object with this map for equality. Returns true if the given object is also a map and the two maps represent the same mappings. More formally, two maps m1 and m2 represent the same mappings if m1.entrySet().equals(m2.entrySet()). This ensures that the equals method works properly across different implementations of the Map interface.

Parameters
o:Object

object to be compared for equality with this map

Returns:boolean

true if the specified object is equal to this map

Annotations
@Override
getback to summary
public Object get(Object key)

Implements java.util.Map.get.

Doc from java.util.Map.get.

Returns the value to which the specified key is mapped, or null if this map contains no mapping for the key.

More formally, if this map contains a mapping from a key k to a value v such that Objects.equals(key, k), then this method returns v; otherwise it returns null. (There can be at most one such mapping.)

If this map permits null values, then a return value of null does not necessarily indicate that the map contains no mapping for the key; it's also possible that the map explicitly maps the key to null. The containsKey operation may be used to distinguish these two cases.

Parameters
key:Object

the key whose associated value is to be returned

Returns:Object

the value to which the specified key is mapped, or null if this map contains no mapping for the key

Annotations
@Override
getback to summary
public abstract Object get(Object bean, Object key)

Get the property of a bean. This allows a BeanMap to be used statically for multiple beans--the bean instance tied to the map is ignored and the bean passed to this method is used instead.

Parameters
bean:Object

the bean to query; must be compatible with the type of this BeanMap

key:Object

must be a String

Returns:Object

the current value, or null if there is no matching property

getBeanback to summary
public Object getBean()

Return the bean currently in use by this map.

Returns:Object

the current JavaBean

See Also
setBean
getPropertyTypeback to summary
public abstract Class<T> getPropertyType(String name)

Get the type of a property.

Parameters
name:String

the name of the JavaBean property

Returns:Class<T>

the type of the property, or null if the property does not exist

hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Implements java.util.Map.hashCode.

Doc from java.util.Map.hashCode.

Returns the hash code value for this map. The hash code of a map is defined to be the sum of the hash codes of each entry in the map's entrySet() view. This ensures that m1.equals(m2) implies that m1.hashCode()==m2.hashCode() for any two maps m1 and m2, as required by the general contract of Object#hashCode.

Returns:int

the hash code value for this map

Annotations
@Override
isEmptyback to summary
public boolean isEmpty()

Implements java.util.Map.isEmpty.

Doc from java.util.Map.isEmpty.

Returns true if this map contains no key-value mappings.

Returns:boolean

true if this map contains no key-value mappings

Annotations
@Override
newInstanceback to summary
public abstract BeanMap newInstance(Object bean)

Create a new BeanMap instance using the specified bean. This is faster than using the create static method.

Parameters
bean:Object

the JavaBean underlying the map

Returns:BeanMap

a new BeanMap instance

putback to summary
public Object put(Object key, Object value)

Implements java.util.Map.put.

Doc from java.util.Map.put.

Associates the specified value with the specified key in this map (optional operation). If the map previously contained a mapping for the key, the old value is replaced by the specified value. (A map m is said to contain a mapping for a key k if and only if m.containsKey(k) would return true.)

Parameters
key:Object

key with which the specified value is to be associated

value:Object

value to be associated with the specified key

Returns:Object

the previous value associated with key, or null if there was no mapping for key. (A null return can also indicate that the map previously associated null with key, if the implementation supports null values.)

Annotations
@Override
putback to summary
public abstract Object put(Object bean, Object key, Object value)

Set the property of a bean. This allows a BeanMap to be used statically for multiple beans--the bean instance tied to the map is ignored and the bean passed to this method is used instead.

Parameters
key:Object

must be a String

Returns:Object

the old value, if there was one, or null

putAllback to summary
public void putAll(Map<K, V> t)

Implements java.util.Map.putAll.

Doc from java.util.Map.putAll.

Copies all of the mappings from the specified map to this map (optional operation). The effect of this call is equivalent to that of calling put(k, v) on this map once for each mapping from key k to value v in the specified map. The behavior of this operation is undefined if the specified map is modified while the operation is in progress. If the specified map has a defined encounter order, processing of its mappings generally occurs in that order.

Parameters
t:Map<K, V>

mappings to be stored in this map

Annotations
@Override
removeback to summary
public Object remove(Object key)

Implements java.util.Map.remove.

Doc from java.util.Map.remove.

Removes the mapping for a key from this map if it is present (optional operation). More formally, if this map contains a mapping from key k to value v such that Objects.equals(key, k), that mapping is removed. (The map can contain at most one such mapping.)

Returns the value to which this map previously associated the key, or null if the map contained no mapping for the key.

If this map permits null values, then a return value of null does not necessarily indicate that the map contained no mapping for the key; it's also possible that the map explicitly mapped the key to null.

The map will not contain a mapping for the specified key once the call returns.

Parameters
key:Object

key whose mapping is to be removed from the map

Returns:Object

the previous value associated with key, or null if there was no mapping for key.

Annotations
@Override
setBeanback to summary
public void setBean(Object bean)

Change the underlying bean this map should use.

Parameters
bean:Object

the new JavaBean

See Also
getBean
sizeback to summary
public int size()

Implements java.util.Map.size.

Doc from java.util.Map.size.

Returns the number of key-value mappings in this map. If the map contains more than Integer.MAX_VALUE elements, returns Integer.MAX_VALUE.

Returns:int

the number of key-value mappings in this map

Annotations
@Override
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object. Satisfying this method's contract implies a non-null result must be returned.

Returns:String

a string representation of the object

Annotations
@Override
valuesback to summary
public Collection<E> values()

Implements java.util.Map.values.

Doc from java.util.Map.values.

Returns a Collection view of the values contained in this map. The collection is backed by the map, so changes to the map are reflected in the collection, and vice-versa. If the map is modified while an iteration over the collection is in progress (except through the iterator's own remove operation), the results of the iteration are undefined. The collection supports element removal, which removes the corresponding mapping from the map, via the Iterator.remove, Collection.remove, removeAll, retainAll and clear operations. It does not support the add or addAll operations.

Returns:Collection<E>

a collection view of the values contained in this map

Annotations
@Override
org.springframework.cglib.beans back to summary

public Class BeanMap.Generator

extends AbstractClassGenerator
Class Inheritance

Nested and Inner Type Summary

Modifier and TypeClass and Description
pack-priv static interface

Field Summary

Modifier and TypeField and Description
private Object
private Class<T>
private static final BeanMap.Generator.BeanMapKey
private int
private static final AbstractClassGenerator.Source

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public BeanMap
create()

Create a new instance of the BeanMap.

protected Object
public void
protected ClassLoader
protected ProtectionDomain
getProtectionDomain()

Overrides org.springframework.cglib.core.AbstractClassGenerator.getProtectionDomain.

Returns the protection domain to use when defining the class.

protected Object
public void
setBean(Object
the initial bean
bean
)

Set the bean that the generated map should reflect.

public void
setBeanClass(Class<T>
the class of the bean
beanClass
)

Set the class of the bean that the generated map should support.

public void
setRequire(int
any combination of REQUIRE_GETTER and REQUIRE_SETTER; default is zero (any property allowed)
require
)

Limit the properties reflected by the generated map.

Inherited from org.springframework.cglib.core.AbstractClassGenerator:
creategenerategetAttemptLoadgetClassLoadergetClassNamegetCurrentgetNamingPolicygetStrategygetUseCachesetAttemptLoadsetClassLoadersetContextClasssetNamePrefixsetNamingPolicysetStrategysetUseCacheunwrapCachedValuewrapCachedClass

Field Detail

beanback to summary
private Object bean
beanClassback to summary
private Class<T> beanClass
KEY_FACTORYback to summary
private static final BeanMap.Generator.BeanMapKey KEY_FACTORY
requireback to summary
private int require
SOURCEback to summary
private static final AbstractClassGenerator.Source SOURCE

Constructor Detail

Generatorback to summary
public Generator()

Method Detail

createback to summary
public BeanMap create()

Create a new instance of the BeanMap. An existing generated class will be reused if possible.

firstInstanceback to summary
protected Object firstInstance(Class<T> type)

Implements abstract org.springframework.cglib.core.AbstractClassGenerator.firstInstance.

Annotations
@Override
generateClassback to summary
public void generateClass(ClassVisitor v) throws Exception

Implements org.springframework.cglib.core.ClassGenerator.generateClass.

Annotations
@Override
getDefaultClassLoaderback to summary
protected ClassLoader getDefaultClassLoader()

Implements abstract org.springframework.cglib.core.AbstractClassGenerator.getDefaultClassLoader.

Annotations
@Override
getProtectionDomainback to summary
protected ProtectionDomain getProtectionDomain()

Overrides org.springframework.cglib.core.AbstractClassGenerator.getProtectionDomain.

Doc from org.springframework.cglib.core.AbstractClassGenerator.getProtectionDomain.

Returns the protection domain to use when defining the class.

Default implementation returns null for using a default protection domain. Sub-classes may override to use a more specific protection domain.

Returns:ProtectionDomain

the protection domain (null for using a default)

Annotations
@Override
nextInstanceback to summary
protected Object nextInstance(Object instance)

Implements abstract org.springframework.cglib.core.AbstractClassGenerator.nextInstance.

Annotations
@Override
setBeanback to summary
public void setBean(Object bean)

Set the bean that the generated map should reflect. The bean may be swapped out for another bean of the same type using setBean. Calling this method overrides any value previously set using setBeanClass. You must call either this method or setBeanClass before create.

Parameters
bean:Object

the initial bean

setBeanClassback to summary
public void setBeanClass(Class<T> beanClass)

Set the class of the bean that the generated map should support. You must call either this method or setBeanClass before create.

Parameters
beanClass:Class<T>

the class of the bean

setRequireback to summary
public void setRequire(int require)

Limit the properties reflected by the generated map.

Parameters
require:int

any combination of REQUIRE_GETTER and REQUIRE_SETTER; default is zero (any property allowed)

org.springframework.cglib.beans back to summary

pack-priv Interface BeanMap.Generator.BeanMapKey


Method Summary

Modifier and TypeMethod and Description
public Object
newInstance(Class<T> type, int require)

Method Detail

newInstanceback to summary
public Object newInstance(Class<T> type, int require)