Package com.googlecode.aviator.utils
Class Env
- java.lang.Object
-
- com.googlecode.aviator.utils.Env
-
- Type Parameters:
String-Object-
- All Implemented Interfaces:
java.io.Serializable,java.util.Map<java.lang.String,java.lang.Object>
public class Env extends java.lang.Object implements java.util.Map<java.lang.String,java.lang.Object>, java.io.SerializableExpression execute environment.Modifed from ChainedMap in jibx.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static interfaceEnv.GetValueTaskstatic classEnv.IntCounter(package private) static classEnv.NullClassDefault Value when cannot resolve class symbol.(package private) static classEnv.TargetObjectTask
-
Field Summary
Fields Modifier and Type Field Description private Env.IntCountercheckPointsstatic java.util.Map<java.lang.String,java.lang.Object>EMPTY_ENVprivate Expressionexpressionprivate java.util.List<java.lang.String>importedPackagesprivate java.util.List<java.lang.String>importedSymbolsprivate AviatorEvaluatorInstanceinstanceCurrent evaluator instance that executes current expression.private static java.util.IdentityHashMap<java.lang.String,Env.GetValueTask>INTERNAL_VARIABLESInternal variable tasks to get the value.private java.util.Map<java.lang.String,java.lang.Object>mDefaultsDefault values map.private java.util.Map<java.lang.String,java.lang.Object>mOverridesOverride values map.private java.util.Map<java.lang.String,java.lang.Class<?>>resolvedClassesprivate static longserialVersionUIDprivate longstartNs
-
Constructor Summary
Constructors Constructor Description Env()Constructs an env instance with empty state.Env(java.util.Map<java.lang.String,java.lang.Object> defaults)Constructor.Env(java.util.Map<java.lang.String,java.lang.Object> defaults, java.util.Map<java.lang.String,java.lang.Object> overrides)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringaddPackageSymbol(java.lang.String sym)java.lang.StringaddSymbol(java.lang.String sym)private java.lang.Class<?>classForName(java.lang.String name)voidclear()Clear all override key-value pairs.voidconfigure(AviatorEvaluatorInstance instance, Expression exp, long startNs, Env.IntCounter checkPoints)booleancontainsKey(java.lang.Object key)Check if a key has a defined value.booleancontainsValue(java.lang.Object value)Check if a value is present.java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.Object>>entrySet()Get the set of entries.private java.lang.StringfindSymbol(java.lang.String name)java.lang.Objectforgot(java.lang.Object key)Remove a key-value pair from overrides.java.lang.Objectget(java.lang.Object key)Get value for key.Env.IntCountergetCheckPoints()java.util.Map<java.lang.String,java.lang.Object>getDefaults()ExpressiongetExpression()java.util.List<java.lang.String>getImportedSymbols()AviatorEvaluatorInstancegetInstance()private java.util.Map<java.lang.String,java.lang.Object>getmOverrides(boolean readOnly)longgetStartNs()intincExecCheckpointsAndGet()private voidinvalidateCache()booleanisEmpty()Check if no overrides are defined.java.util.Set<java.lang.String>keySet()Get the set of keys.java.lang.Objectoverride(java.lang.String key, java.lang.Object value)Set an override value.java.lang.Objectput(java.lang.String key, java.lang.Object value)Assign an value, if it's already in overrides, it will update it, otherwise set it to default map.private voidput2cache(java.lang.String name, java.lang.Class<?> ret)voidputAll(java.util.Map map)Add all key-value pairs from another map into the overrides map.java.lang.Objectremove(java.lang.Object key)Remove a key-value pair.java.lang.Class<?>resolveClassSymbol(java.lang.String name)java.lang.Class<?>resolveClassSymbol(java.lang.String name, boolean checkIfAllow)private java.lang.Class<?>resolveFromImportedPackages(java.lang.String name)private java.lang.Class<?>resolveFromImportedSymbols(java.lang.String name, java.lang.Class<?> clazz)private java.lang.Class<?>retrieveFromCache(java.lang.String name)voidsetExpression(Expression expression)voidsetInstance(AviatorEvaluatorInstance instance)voidsetmOverrides(java.util.Map<java.lang.String,java.lang.Object> mOverrides)private voidsetStats(long startNs, Env.IntCounter checkPoints)intsize()Get the number of entries in the map.java.lang.StringtoString()Gets the map as a String.java.util.Collection<java.lang.Object>values()Get the values.
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
mDefaults
private final java.util.Map<java.lang.String,java.lang.Object> mDefaults
Default values map.
-
instance
private transient AviatorEvaluatorInstance instance
Current evaluator instance that executes current expression.
-
mOverrides
private java.util.Map<java.lang.String,java.lang.Object> mOverrides
Override values map.
-
expression
private Expression expression
-
importedSymbols
private java.util.List<java.lang.String> importedSymbols
-
importedPackages
private java.util.List<java.lang.String> importedPackages
-
resolvedClasses
private transient java.util.Map<java.lang.String,java.lang.Class<?>> resolvedClasses
-
EMPTY_ENV
public static final java.util.Map<java.lang.String,java.lang.Object> EMPTY_ENV
-
startNs
private long startNs
-
checkPoints
private transient Env.IntCounter checkPoints
-
INTERNAL_VARIABLES
private static final java.util.IdentityHashMap<java.lang.String,Env.GetValueTask> INTERNAL_VARIABLES
Internal variable tasks to get the value.
-
-
Constructor Detail
-
Env
public Env()
Constructs an env instance with empty state.
-
Env
public Env(java.util.Map<java.lang.String,java.lang.Object> defaults)
Constructor.- Parameters:
defaults- map providing defaults for keys not set directly
-
Env
public Env(java.util.Map<java.lang.String,java.lang.Object> defaults, java.util.Map<java.lang.String,java.lang.Object> overrides)
-
-
Method Detail
-
setmOverrides
public void setmOverrides(java.util.Map<java.lang.String,java.lang.Object> mOverrides)
-
getStartNs
public long getStartNs()
-
incExecCheckpointsAndGet
public int incExecCheckpointsAndGet()
-
getCheckPoints
public Env.IntCounter getCheckPoints()
-
getImportedSymbols
public java.util.List<java.lang.String> getImportedSymbols()
-
getExpression
public Expression getExpression()
-
setExpression
public void setExpression(Expression expression)
-
getDefaults
public java.util.Map<java.lang.String,java.lang.Object> getDefaults()
-
addSymbol
public java.lang.String addSymbol(java.lang.String sym)
-
addPackageSymbol
public java.lang.String addPackageSymbol(java.lang.String sym)
-
invalidateCache
private void invalidateCache()
-
getInstance
public AviatorEvaluatorInstance getInstance()
-
setInstance
public void setInstance(AviatorEvaluatorInstance instance)
-
configure
public void configure(AviatorEvaluatorInstance instance, Expression exp, long startNs, Env.IntCounter checkPoints)
-
setStats
private void setStats(long startNs, Env.IntCounter checkPoints)
-
findSymbol
private java.lang.String findSymbol(java.lang.String name) throws java.lang.ClassNotFoundException- Throws:
java.lang.ClassNotFoundException
-
resolveClassSymbol
public java.lang.Class<?> resolveClassSymbol(java.lang.String name) throws java.lang.ClassNotFoundException- Throws:
java.lang.ClassNotFoundException
-
resolveClassSymbol
public java.lang.Class<?> resolveClassSymbol(java.lang.String name, boolean checkIfAllow) throws java.lang.ClassNotFoundException- Throws:
java.lang.ClassNotFoundException
-
resolveFromImportedPackages
private java.lang.Class<?> resolveFromImportedPackages(java.lang.String name)
-
resolveFromImportedSymbols
private java.lang.Class<?> resolveFromImportedSymbols(java.lang.String name, java.lang.Class<?> clazz) throws java.lang.ClassNotFoundException- Throws:
java.lang.ClassNotFoundException
-
put2cache
private void put2cache(java.lang.String name, java.lang.Class<?> ret)
-
retrieveFromCache
private java.lang.Class<?> retrieveFromCache(java.lang.String name)
-
classForName
private java.lang.Class<?> classForName(java.lang.String name)
-
clear
public void clear()
Clear all override key-value pairs. This only effects the overrides, not the defaults.- Specified by:
clearin interfacejava.util.Map<java.lang.String,java.lang.Object>
-
containsKey
public boolean containsKey(java.lang.Object key)
Check if a key has a defined value. This will returntrueif the key is present in the overrides map or the defaults map.- Specified by:
containsKeyin interfacejava.util.Map<java.lang.String,java.lang.Object>- Parameters:
key-- Returns:
trueif key defined,falseif not
-
containsValue
public boolean containsValue(java.lang.Object value)
Check if a value is present.- Specified by:
containsValuein interfacejava.util.Map<java.lang.String,java.lang.Object>- Parameters:
value-- Returns:
trueif value present as an override,falseif not
-
entrySet
public java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.Object>> entrySet()
Get the set of entries.- Specified by:
entrySetin interfacejava.util.Map<java.lang.String,java.lang.Object>- Returns:
- override entries
-
get
public java.lang.Object get(java.lang.Object key)
Get value for key. If the key is present in the overrides map, the value from that map is returned; otherwise, the value for the key in the defaults map is returned.- Specified by:
getin interfacejava.util.Map<java.lang.String,java.lang.Object>- Parameters:
key-- Returns:
- value (
nullif key not present)
-
isEmpty
public boolean isEmpty()
Check if no overrides are defined.- Specified by:
isEmptyin interfacejava.util.Map<java.lang.String,java.lang.Object>- Returns:
trueif no overrides,falseif any present
-
keySet
public java.util.Set<java.lang.String> keySet()
Get the set of keys. This only returns the keys in the overrides map.- Specified by:
keySetin interfacejava.util.Map<java.lang.String,java.lang.Object>- Returns:
- keys
-
override
public java.lang.Object override(java.lang.String key, java.lang.Object value)Set an override value.- Parameters:
key-value-- Returns:
-
put
public java.lang.Object put(java.lang.String key, java.lang.Object value)Assign an value, if it's already in overrides, it will update it, otherwise set it to default map.- Specified by:
putin interfacejava.util.Map<java.lang.String,java.lang.Object>- Parameters:
key-value-- Returns:
- previous value for key (from default map, if not present in overrides)
-
putAll
public void putAll(java.util.Map map)
Add all key-value pairs from another map into the overrides map.- Specified by:
putAllin interfacejava.util.Map<java.lang.String,java.lang.Object>- Parameters:
map-
-
remove
public java.lang.Object remove(java.lang.Object key)
Remove a key-value pair. If the key was previously present in the overrides map it is simply removed from that map. If it was not present in the overrides map but is present in the defaults map, a null entry is added to the overrides map for that key.- Specified by:
removein interfacejava.util.Map<java.lang.String,java.lang.Object>- Parameters:
key-- Returns:
- previous value for key
-
forgot
public java.lang.Object forgot(java.lang.Object key)
Remove a key-value pair from overrides.- Parameters:
key-- Returns:
-
size
public int size()
Get the number of entries in the map. This returns the entry count for the overrides map only.- Specified by:
sizein interfacejava.util.Map<java.lang.String,java.lang.Object>- Returns:
- entry count
-
values
public java.util.Collection<java.lang.Object> values()
Get the values. This returns only the values in the overrides map.- Specified by:
valuesin interfacejava.util.Map<java.lang.String,java.lang.Object>- Returns:
- values
-
toString
public java.lang.String toString()
Gets the map as a String.- Overrides:
toStringin classjava.lang.Object- Returns:
- a string version of the map
-
getmOverrides
private java.util.Map<java.lang.String,java.lang.Object> getmOverrides(boolean readOnly)
-
-