Class PropertyMutatorCollector
- java.lang.Object
-
- com.fasterxml.jackson.module.afterburner.util.DynamicPropertyAccessorBase
-
- com.fasterxml.jackson.module.afterburner.deser.PropertyMutatorCollector
-
public class PropertyMutatorCollector extends DynamicPropertyAccessorBase
Simple collector used to keep track of properties for which code-generated mutators are needed.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<SettableBooleanFieldProperty>_booleanFieldsprivate java.util.List<SettableBooleanMethodProperty>_booleanSettersprivate java.util.List<SettableIntFieldProperty>_intFieldsprivate java.util.List<SettableIntMethodProperty>_intSettersprivate java.util.List<SettableLongFieldProperty>_longFieldsprivate java.util.List<SettableLongMethodProperty>_longSettersprivate java.util.List<SettableObjectFieldProperty>_objectFieldsprivate java.util.List<SettableObjectMethodProperty>_objectSettersprivate java.util.List<SettableStringFieldProperty>_stringFieldsprivate java.util.List<SettableStringMethodProperty>_stringSettersprivate java.lang.Class<?>beanClassprivate java.lang.StringbeanClassNameprivate static org.objectweb.asm.TypeOBJECT_TYPEprivate static org.objectweb.asm.TypeSTRING_TYPE-
Fields inherited from class com.fasterxml.jackson.module.afterburner.util.DynamicPropertyAccessorBase
_accessorCount, ALL_INT_CONSTS
-
-
Constructor Summary
Constructors Constructor Description PropertyMutatorCollector(java.lang.Class<?> beanClass)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private <T extends OptimizedSettableBeanProperty<T>>
void_addFields(org.objectweb.asm.ClassWriter cw, java.util.List<T> props, java.lang.String methodName, org.objectweb.asm.Type parameterType, int loadValueCode)private <T extends OptimizedSettableBeanProperty<T>>
void_addFieldsUsingIf(org.objectweb.asm.MethodVisitor mv, java.util.List<T> props, int loadValueCode, int beanIndex, boolean mustCast)private <T extends OptimizedSettableBeanProperty<T>>
void_addFieldsUsingSwitch(org.objectweb.asm.MethodVisitor mv, java.util.List<T> props, int loadValueCode, int beanIndex, boolean mustCast)private <T extends OptimizedSettableBeanProperty<T>>
void_addSetters(org.objectweb.asm.ClassWriter cw, java.util.List<T> props, java.lang.String methodName, org.objectweb.asm.Type parameterType, int loadValueCode)private <T extends OptimizedSettableBeanProperty<T>>
void_addSettersUsingIf(org.objectweb.asm.MethodVisitor mv, java.util.List<T> props, int loadValueCode, int beanIndex, boolean mustCast)private <T extends OptimizedSettableBeanProperty<T>>
void_addSettersUsingSwitch(org.objectweb.asm.MethodVisitor mv, java.util.List<T> props, int loadValueCode, int beanIndex, boolean mustCast)private void_addSingleField(org.objectweb.asm.MethodVisitor mv, OptimizedSettableBeanProperty<?> prop, int loadValueCode, int beanIndex, boolean mustCast)private void_addSingleSetter(org.objectweb.asm.MethodVisitor mv, OptimizedSettableBeanProperty<?> prop, int loadValueCode, int beanIndex, boolean mustCast)SettableBooleanFieldPropertyaddBooleanField(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)SettableBooleanMethodPropertyaddBooleanSetter(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)SettableIntFieldPropertyaddIntField(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)SettableIntMethodPropertyaddIntSetter(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)SettableLongFieldPropertyaddLongField(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)SettableLongMethodPropertyaddLongSetter(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)SettableObjectFieldPropertyaddObjectField(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)SettableObjectMethodPropertyaddObjectSetter(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)SettableStringFieldPropertyaddStringField(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)SettableStringMethodPropertyaddStringSetter(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)BeanPropertyMutatorbuildMutator(MyClassLoader classLoader)Method for building generic mutator class for specified bean type.java.lang.Class<?>generateMutatorClass(MyClassLoader classLoader, ClassName baseName)-
Methods inherited from class com.fasterxml.jackson.module.afterburner.util.DynamicPropertyAccessorBase
_add, generateException, internalClassName, isEmpty, isInterfaceMethod
-
-
-
-
Field Detail
-
STRING_TYPE
private static final org.objectweb.asm.Type STRING_TYPE
-
OBJECT_TYPE
private static final org.objectweb.asm.Type OBJECT_TYPE
-
_intSetters
private final java.util.List<SettableIntMethodProperty> _intSetters
-
_longSetters
private final java.util.List<SettableLongMethodProperty> _longSetters
-
_booleanSetters
private final java.util.List<SettableBooleanMethodProperty> _booleanSetters
-
_stringSetters
private final java.util.List<SettableStringMethodProperty> _stringSetters
-
_objectSetters
private final java.util.List<SettableObjectMethodProperty> _objectSetters
-
_intFields
private final java.util.List<SettableIntFieldProperty> _intFields
-
_longFields
private final java.util.List<SettableLongFieldProperty> _longFields
-
_booleanFields
private final java.util.List<SettableBooleanFieldProperty> _booleanFields
-
_stringFields
private final java.util.List<SettableStringFieldProperty> _stringFields
-
_objectFields
private final java.util.List<SettableObjectFieldProperty> _objectFields
-
beanClass
private final java.lang.Class<?> beanClass
-
beanClassName
private final java.lang.String beanClassName
-
-
Method Detail
-
addIntSetter
public SettableIntMethodProperty addIntSetter(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)
-
addLongSetter
public SettableLongMethodProperty addLongSetter(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)
-
addBooleanSetter
public SettableBooleanMethodProperty addBooleanSetter(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)
-
addStringSetter
public SettableStringMethodProperty addStringSetter(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)
-
addObjectSetter
public SettableObjectMethodProperty addObjectSetter(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)
-
addIntField
public SettableIntFieldProperty addIntField(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)
-
addLongField
public SettableLongFieldProperty addLongField(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)
-
addBooleanField
public SettableBooleanFieldProperty addBooleanField(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)
-
addStringField
public SettableStringFieldProperty addStringField(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)
-
addObjectField
public SettableObjectFieldProperty addObjectField(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)
-
buildMutator
public BeanPropertyMutator buildMutator(MyClassLoader classLoader)
Method for building generic mutator class for specified bean type.
-
generateMutatorClass
public java.lang.Class<?> generateMutatorClass(MyClassLoader classLoader, ClassName baseName)
-
_addSetters
private <T extends OptimizedSettableBeanProperty<T>> void _addSetters(org.objectweb.asm.ClassWriter cw, java.util.List<T> props, java.lang.String methodName, org.objectweb.asm.Type parameterType, int loadValueCode)
-
_addFields
private <T extends OptimizedSettableBeanProperty<T>> void _addFields(org.objectweb.asm.ClassWriter cw, java.util.List<T> props, java.lang.String methodName, org.objectweb.asm.Type parameterType, int loadValueCode)
-
_addSingleSetter
private void _addSingleSetter(org.objectweb.asm.MethodVisitor mv, OptimizedSettableBeanProperty<?> prop, int loadValueCode, int beanIndex, boolean mustCast)
-
_addSettersUsingIf
private <T extends OptimizedSettableBeanProperty<T>> void _addSettersUsingIf(org.objectweb.asm.MethodVisitor mv, java.util.List<T> props, int loadValueCode, int beanIndex, boolean mustCast)
-
_addSettersUsingSwitch
private <T extends OptimizedSettableBeanProperty<T>> void _addSettersUsingSwitch(org.objectweb.asm.MethodVisitor mv, java.util.List<T> props, int loadValueCode, int beanIndex, boolean mustCast)
-
_addSingleField
private void _addSingleField(org.objectweb.asm.MethodVisitor mv, OptimizedSettableBeanProperty<?> prop, int loadValueCode, int beanIndex, boolean mustCast)
-
_addFieldsUsingIf
private <T extends OptimizedSettableBeanProperty<T>> void _addFieldsUsingIf(org.objectweb.asm.MethodVisitor mv, java.util.List<T> props, int loadValueCode, int beanIndex, boolean mustCast)
-
_addFieldsUsingSwitch
private <T extends OptimizedSettableBeanProperty<T>> void _addFieldsUsingSwitch(org.objectweb.asm.MethodVisitor mv, java.util.List<T> props, int loadValueCode, int beanIndex, boolean mustCast)
-
-