public class ProxyBuilder<T> extends java.util.AbstractMap<java.lang.String,java.lang.Object> implements Builder<T>
Modifier and Type | Class and Description |
---|---|
private static class |
ProxyBuilder.AnnotationValue |
private static class |
ProxyBuilder.ArrayListWrapper<T> |
private static class |
ProxyBuilder.Getter |
private static class |
ProxyBuilder.Property |
private static class |
ProxyBuilder.Setter |
Modifier and Type | Field and Description |
---|---|
private java.util.Comparator<java.lang.reflect.Constructor> |
constructorComparator |
private java.util.Set<java.lang.reflect.Constructor> |
constructors |
private java.util.Map<java.lang.reflect.Constructor,java.util.Map<java.lang.String,ProxyBuilder.AnnotationValue>> |
constructorsMap |
private java.util.Map<java.lang.String,java.lang.Object> |
containers |
private java.lang.reflect.Constructor |
defaultConstructor |
private static java.util.Map<java.lang.Class<?>,java.lang.Object> |
defaultsMap |
private static java.lang.String |
GETTER_PREFIX |
private boolean |
hasDefaultConstructor |
private java.util.Map<java.lang.String,ProxyBuilder.Property> |
propertiesMap |
private java.util.Set<java.lang.String> |
propertyNames |
private static java.lang.String |
SETTER_PREFIX |
private java.lang.Class<?> |
type |
private java.util.Map<java.lang.String,java.lang.Object> |
userValues |
Constructor and Description |
---|
ProxyBuilder(java.lang.Class<?> tp) |
Modifier and Type | Method and Description |
---|---|
T |
build()
Builds and returns the object.
|
private java.util.Set<java.lang.reflect.Constructor> |
chooseBestConstructors(java.util.Set<java.lang.String> settersArgs) |
boolean |
containsKey(java.lang.Object key) |
boolean |
containsValue(java.lang.Object value) |
private static java.lang.Object[] |
convertListToArray(java.lang.Object userValue,
java.lang.Class<?> localType) |
private java.lang.Object |
createInstance(java.lang.reflect.Constructor c,
java.lang.Object[] args) |
private java.lang.Object |
createObjectFromConstructor(java.lang.reflect.Constructor constructor,
java.util.Set<java.lang.String> propertiesToSet) |
private java.lang.Object |
createObjectFromDefaultConstructor() |
private java.lang.Object |
createObjectWithExactArguments(java.lang.reflect.Constructor c,
java.util.Set<java.lang.String> argumentNames) |
java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.Object>> |
entrySet() |
java.lang.Object |
get(java.lang.Object key) |
private java.util.Set<java.lang.String> |
getArgumentNames(java.lang.reflect.Constructor c) |
private static java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.reflect.Method>> |
getClassMethodCache(java.lang.Class<?> type) |
private static java.lang.Object |
getDefaultValue(java.lang.Class clazz) |
private java.lang.Object |
getReadOnlyProperty(java.lang.String propName) |
private java.lang.Object |
getTemporaryContainer(java.lang.String propName)
This is used to support read-only collection property.
|
private java.lang.Object |
getUserValue(java.lang.String key,
java.lang.Class<?> type) |
boolean |
isEmpty() |
java.lang.Object |
put(java.lang.String key,
java.lang.Object value) |
private java.util.Map<java.lang.String,ProxyBuilder.Property> |
scanForSetters() |
int |
size() |
clear, clone, equals, hashCode, keySet, putAll, remove, toString, values
private java.lang.Class<?> type
private final java.util.Map<java.lang.reflect.Constructor,java.util.Map<java.lang.String,ProxyBuilder.AnnotationValue>> constructorsMap
private final java.util.Map<java.lang.String,ProxyBuilder.Property> propertiesMap
private final java.util.Set<java.lang.reflect.Constructor> constructors
private java.util.Set<java.lang.String> propertyNames
private boolean hasDefaultConstructor
private java.lang.reflect.Constructor defaultConstructor
private static final java.lang.String SETTER_PREFIX
private static final java.lang.String GETTER_PREFIX
private final java.util.Comparator<java.lang.reflect.Constructor> constructorComparator
private final java.util.Map<java.lang.String,java.lang.Object> userValues
private final java.util.Map<java.lang.String,java.lang.Object> containers
private static final java.util.Map<java.lang.Class<?>,java.lang.Object> defaultsMap
public java.lang.Object put(java.lang.String key, java.lang.Object value)
put
in interface java.util.Map<java.lang.String,java.lang.Object>
put
in class java.util.AbstractMap<java.lang.String,java.lang.Object>
private java.lang.Object getTemporaryContainer(java.lang.String propName)
private java.lang.Object getReadOnlyProperty(java.lang.String propName)
public int size()
size
in interface java.util.Map<java.lang.String,java.lang.Object>
size
in class java.util.AbstractMap<java.lang.String,java.lang.Object>
public java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.Object>> entrySet()
entrySet
in interface java.util.Map<java.lang.String,java.lang.Object>
entrySet
in class java.util.AbstractMap<java.lang.String,java.lang.Object>
public boolean isEmpty()
isEmpty
in interface java.util.Map<java.lang.String,java.lang.Object>
isEmpty
in class java.util.AbstractMap<java.lang.String,java.lang.Object>
public boolean containsKey(java.lang.Object key)
containsKey
in interface java.util.Map<java.lang.String,java.lang.Object>
containsKey
in class java.util.AbstractMap<java.lang.String,java.lang.Object>
public boolean containsValue(java.lang.Object value)
containsValue
in interface java.util.Map<java.lang.String,java.lang.Object>
containsValue
in class java.util.AbstractMap<java.lang.String,java.lang.Object>
public java.lang.Object get(java.lang.Object key)
get
in interface java.util.Map<java.lang.String,java.lang.Object>
get
in class java.util.AbstractMap<java.lang.String,java.lang.Object>
private java.util.Set<java.lang.reflect.Constructor> chooseBestConstructors(java.util.Set<java.lang.String> settersArgs)
private java.util.Set<java.lang.String> getArgumentNames(java.lang.reflect.Constructor c)
private java.lang.Object createObjectFromDefaultConstructor() throws java.lang.RuntimeException
java.lang.RuntimeException
private java.lang.Object createObjectFromConstructor(java.lang.reflect.Constructor constructor, java.util.Set<java.lang.String> propertiesToSet)
private java.lang.Object getUserValue(java.lang.String key, java.lang.Class<?> type)
private java.lang.Object createObjectWithExactArguments(java.lang.reflect.Constructor c, java.util.Set<java.lang.String> argumentNames)
private java.lang.Object createInstance(java.lang.reflect.Constructor c, java.lang.Object[] args) throws java.lang.Exception
java.lang.Exception
private java.util.Map<java.lang.String,ProxyBuilder.Property> scanForSetters()
private static java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.reflect.Method>> getClassMethodCache(java.lang.Class<?> type)
private static java.lang.Object[] convertListToArray(java.lang.Object userValue, java.lang.Class<?> localType)
private static java.lang.Object getDefaultValue(java.lang.Class clazz)