public class DynamicStorageGenerator extends Object
DynamicStorage
classes. Can be
extended to decorate/modify the generated instances behavior.Modifier and Type | Field and Description |
---|---|
protected static int |
POLICY_EMPTY
Constant to not generate type set/get methods.
|
protected static int |
POLICY_EXCEPTION
Constant to throw an exception on invalid index passed to type set/get
methods
|
protected static int |
POLICY_SILENT
Constant to be as silent as possible during invalid index passed
to set/get type methods.
|
Constructor and Description |
---|
DynamicStorageGenerator() |
Modifier and Type | Method and Description |
---|---|
protected serp.bytecode.BCField |
addBeanField(serp.bytecode.BCClass bc,
String name,
Class type)
Add a bean field of the given name and type.
|
protected DynamicStorage |
createFactory(serp.bytecode.BCClass bc)
Create a stub factory instance for the given class.
|
protected void |
declareClasses(serp.bytecode.BCClass bc)
Add interface or superclass declarations to the generated class.
|
protected void |
decorate(Object obj,
serp.bytecode.BCClass cls,
int[] types)
Decorate the generated class.
|
protected Class |
forType(int type)
Return the proper type for the given
JavaTypes constant. |
DynamicStorage |
generateStorage(int[] types,
Object obj)
Generate a generic
DynamicStorage instance with the given
array of JavaTypes constants and the given object as
the user key for generation. |
protected String |
getClassName(Object obj)
Return a class name to use for the given user key.
|
protected int |
getCreateFieldMethods(int type)
Return the policy constant for how to create type methods.
|
protected int |
getFieldAccess()
Return the default field ACCESS constant for generated fields from
Constants . |
protected String |
getFieldName(int index)
Return the name for the generated field at the given index.
|
protected Class |
getWrapper(Class c)
Get the wrapper for the given type.
|
protected Class |
getWrapper(int type)
get the wrapper for the given
JavaTypes constant. |
protected boolean |
isCompatible(int fieldType,
int storageType)
Return true if the given field type and storage type are compatible.
|
protected serp.bytecode.Code |
replaceMethod(serp.bytecode.BCClass bc,
String name,
Class retType,
Class[] args,
boolean remove)
Clear code associated with the given method signature, and return
the empty code.
|
protected serp.bytecode.Instruction |
throwException(serp.bytecode.Code code,
Class type)
Throw an exception of the given type.
|
protected static final int POLICY_EXCEPTION
protected static final int POLICY_EMPTY
protected static final int POLICY_SILENT
public DynamicStorage generateStorage(int[] types, Object obj)
DynamicStorage
instance with the given
array of JavaTypes
constants and the given object as
the user key for generation.protected String getClassName(Object obj)
protected int getFieldAccess()
Constants
.protected String getFieldName(int index)
"field" + i
by default.protected int getCreateFieldMethods(int type)
protected void decorate(Object obj, serp.bytecode.BCClass cls, int[] types)
protected DynamicStorage createFactory(serp.bytecode.BCClass bc)
protected void declareClasses(serp.bytecode.BCClass bc)
protected serp.bytecode.Code replaceMethod(serp.bytecode.BCClass bc, String name, Class retType, Class[] args, boolean remove)
protected serp.bytecode.BCField addBeanField(serp.bytecode.BCClass bc, String name, Class type)
protected boolean isCompatible(int fieldType, int storageType)
protected serp.bytecode.Instruction throwException(serp.bytecode.Code code, Class type)
Copyright © 2006–2020 Apache Software Foundation. All rights reserved.