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>
_booleanFields
private java.util.List<SettableBooleanMethodProperty>
_booleanSetters
private java.util.List<SettableIntFieldProperty>
_intFields
private java.util.List<SettableIntMethodProperty>
_intSetters
private java.util.List<SettableLongFieldProperty>
_longFields
private java.util.List<SettableLongMethodProperty>
_longSetters
private java.util.List<SettableObjectFieldProperty>
_objectFields
private java.util.List<SettableObjectMethodProperty>
_objectSetters
private java.util.List<SettableStringFieldProperty>
_stringFields
private java.util.List<SettableStringMethodProperty>
_stringSetters
private java.lang.Class<?>
beanClass
private java.lang.String
beanClassName
private static org.objectweb.asm.Type
OBJECT_TYPE
private static org.objectweb.asm.Type
STRING_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)
SettableBooleanFieldProperty
addBooleanField(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)
SettableBooleanMethodProperty
addBooleanSetter(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)
SettableIntFieldProperty
addIntField(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)
SettableIntMethodProperty
addIntSetter(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)
SettableLongFieldProperty
addLongField(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)
SettableLongMethodProperty
addLongSetter(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)
SettableObjectFieldProperty
addObjectField(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)
SettableObjectMethodProperty
addObjectSetter(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)
SettableStringFieldProperty
addStringField(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)
SettableStringMethodProperty
addStringSetter(com.fasterxml.jackson.databind.deser.SettableBeanProperty prop)
BeanPropertyMutator
buildMutator(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)
-
-