public class PropertyAccessor
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private static int |
COL |
private java.lang.Object |
ctx |
private java.lang.Object |
curr |
private java.lang.Class |
currType |
private int |
cursor |
private static java.lang.Object[] |
EMPTYARG |
private int |
end |
private boolean |
first |
private int |
length |
private static int |
METH |
private static java.util.Map<java.lang.reflect.Member,java.lang.ref.WeakReference<java.lang.Class[]>> |
METHOD_PARMTYPES_CACHE |
private static java.util.Map<java.lang.Class,java.util.WeakHashMap<java.lang.Integer,java.lang.ref.WeakReference<java.lang.Object[]>>> |
METHOD_RESOLVER_CACHE |
private static int |
NORM |
private boolean |
nullHandle |
private ParserContext |
pCtx |
private char[] |
property |
private static java.util.Map<java.lang.Class,java.util.WeakHashMap<java.lang.Integer,java.lang.ref.WeakReference<java.lang.reflect.Member>>> |
READ_PROPERTY_RESOLVER_CACHE |
private int |
st |
private int |
start |
private java.lang.Object |
thisReference |
private VariableResolverFactory |
variableFactory |
private static int |
WITH |
private static java.util.Map<java.lang.Class,java.util.WeakHashMap<java.lang.Integer,java.lang.ref.WeakReference<java.lang.reflect.Member>>> |
WRITE_PROPERTY_RESOLVER_CACHE |
Constructor and Description |
---|
PropertyAccessor(char[] property,
int start,
int offset,
java.lang.Object ctx,
VariableResolverFactory resolver,
java.lang.Object thisReference,
ParserContext pCtx) |
PropertyAccessor(char[] property,
java.lang.Object ctx,
VariableResolverFactory resolver,
java.lang.Object thisReference,
ParserContext pCtx) |
PropertyAccessor(java.lang.String property,
java.lang.Object ctx) |
Modifier and Type | Method and Description |
---|---|
private static void |
addMethodCache(java.lang.Class cls,
java.lang.Integer property,
java.lang.reflect.Method member) |
private static void |
addReadCache(java.lang.Class cls,
java.lang.Integer property,
java.lang.reflect.Member member) |
private static void |
addWriteCache(java.lang.Class cls,
java.lang.Integer property,
java.lang.reflect.Member member) |
private java.lang.String |
capture() |
private static java.lang.Object[] |
checkMethodCache(java.lang.Class cls,
java.lang.Integer property) |
static java.lang.Class[] |
checkParmTypesCache(java.lang.reflect.Method member) |
private static java.lang.reflect.Member |
checkReadCache(java.lang.Class cls,
java.lang.Integer property) |
private static java.lang.reflect.Member |
checkWriteCache(java.lang.Class cls,
java.lang.Integer property) |
static void |
clearPropertyResolverCache() |
private static int |
createSignature(java.lang.String name,
java.lang.String args) |
private java.lang.Object |
get() |
static java.lang.Object |
get(char[] property,
int offset,
int end,
java.lang.Object ctx,
VariableResolverFactory resolver,
java.lang.Object thisReferece,
ParserContext pCtx) |
static java.lang.Object |
get(java.lang.String property,
java.lang.Object ctx) |
static java.lang.Object |
get(java.lang.String property,
java.lang.Object ctx,
VariableResolverFactory resolver,
java.lang.Object thisReference,
ParserContext pCtx) |
private java.lang.Object |
getAllowOverride() |
private java.lang.Object |
getBeanProperty(java.lang.Object ctx,
java.lang.String property) |
private java.lang.Object |
getBeanPropertyAO(java.lang.Object ctx,
java.lang.String property) |
private java.lang.ClassLoader |
getClassLoader() |
private java.lang.Object |
getCollectionProperty(java.lang.Object ctx,
java.lang.String prop)
Handle accessing a property embedded in a collections, map, or array
|
private java.lang.Object |
getCollectionPropertyAO(java.lang.Object ctx,
java.lang.String prop) |
private java.lang.Object |
getMethod(java.lang.Object ctx,
java.lang.String name)
Find an appropriate method, execute it, and return it's response.
|
private java.lang.Object |
getNormal() |
private java.lang.Object |
getWithProperty(java.lang.Object ctx) |
private int |
nextToken() |
static void |
reportCacheSizes() |
private boolean |
scanTo(char c) |
private void |
set(java.lang.Object value) |
static void |
set(java.lang.Object ctx,
java.lang.String property,
java.lang.Object value) |
static void |
set(java.lang.Object ctx,
VariableResolverFactory resolver,
java.lang.String property,
java.lang.Object value,
ParserContext pCtx) |
protected int |
trimLeft(int pos) |
protected java.lang.Object |
tryStaticAccess()
Try static access of the property, and return an instance of the Field, Method of Class if successful.
|
private void |
whiteSpaceSkip() |
private int start
private int cursor
private int st
private char[] property
private int length
private int end
private java.lang.Object thisReference
private java.lang.Object ctx
private java.lang.Object curr
private java.lang.Class currType
private boolean first
private boolean nullHandle
private VariableResolverFactory variableFactory
private ParserContext pCtx
private static final int NORM
private static final int METH
private static final int COL
private static final int WITH
private static final java.lang.Object[] EMPTYARG
private static final java.util.Map<java.lang.Class,java.util.WeakHashMap<java.lang.Integer,java.lang.ref.WeakReference<java.lang.reflect.Member>>> READ_PROPERTY_RESOLVER_CACHE
private static final java.util.Map<java.lang.Class,java.util.WeakHashMap<java.lang.Integer,java.lang.ref.WeakReference<java.lang.reflect.Member>>> WRITE_PROPERTY_RESOLVER_CACHE
private static final java.util.Map<java.lang.Class,java.util.WeakHashMap<java.lang.Integer,java.lang.ref.WeakReference<java.lang.Object[]>>> METHOD_RESOLVER_CACHE
private static final java.util.Map<java.lang.reflect.Member,java.lang.ref.WeakReference<java.lang.Class[]>> METHOD_PARMTYPES_CACHE
public PropertyAccessor(java.lang.String property, java.lang.Object ctx)
public PropertyAccessor(char[] property, java.lang.Object ctx, VariableResolverFactory resolver, java.lang.Object thisReference, ParserContext pCtx)
public PropertyAccessor(char[] property, int start, int offset, java.lang.Object ctx, VariableResolverFactory resolver, java.lang.Object thisReference, ParserContext pCtx)
public static java.lang.Object get(java.lang.String property, java.lang.Object ctx)
public static java.lang.Object get(char[] property, int offset, int end, java.lang.Object ctx, VariableResolverFactory resolver, java.lang.Object thisReferece, ParserContext pCtx)
public static java.lang.Object get(java.lang.String property, java.lang.Object ctx, VariableResolverFactory resolver, java.lang.Object thisReference, ParserContext pCtx)
public static void set(java.lang.Object ctx, java.lang.String property, java.lang.Object value)
public static void set(java.lang.Object ctx, VariableResolverFactory resolver, java.lang.String property, java.lang.Object value, ParserContext pCtx)
private java.lang.Object get()
private java.lang.Object getNormal() throws java.lang.Exception
java.lang.Exception
private java.lang.Object getAllowOverride() throws java.lang.Exception
java.lang.Exception
private void set(java.lang.Object value)
private int nextToken()
private java.lang.String capture()
protected int trimLeft(int pos)
public static void clearPropertyResolverCache()
public static void reportCacheSizes()
private static void addReadCache(java.lang.Class cls, java.lang.Integer property, java.lang.reflect.Member member)
private static java.lang.reflect.Member checkReadCache(java.lang.Class cls, java.lang.Integer property)
private static void addWriteCache(java.lang.Class cls, java.lang.Integer property, java.lang.reflect.Member member)
private static java.lang.reflect.Member checkWriteCache(java.lang.Class cls, java.lang.Integer property)
public static java.lang.Class[] checkParmTypesCache(java.lang.reflect.Method member)
private static void addMethodCache(java.lang.Class cls, java.lang.Integer property, java.lang.reflect.Method member)
private static java.lang.Object[] checkMethodCache(java.lang.Class cls, java.lang.Integer property)
private java.lang.Object getBeanPropertyAO(java.lang.Object ctx, java.lang.String property) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
private java.lang.Object getBeanProperty(java.lang.Object ctx, java.lang.String property) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
private void whiteSpaceSkip()
private boolean scanTo(char c)
c
- - character to scan to.private java.lang.Object getWithProperty(java.lang.Object ctx)
private java.lang.Object getCollectionProperty(java.lang.Object ctx, java.lang.String prop) throws java.lang.Exception
ctx
- -prop
- -java.lang.Exception
- -private java.lang.Object getCollectionPropertyAO(java.lang.Object ctx, java.lang.String prop) throws java.lang.Exception
java.lang.Exception
private java.lang.Object getMethod(java.lang.Object ctx, java.lang.String name)
ctx
- -name
- -private static int createSignature(java.lang.String name, java.lang.String args)
private java.lang.ClassLoader getClassLoader()
protected java.lang.Object tryStaticAccess()