use of java.lang.reflect.Member in project qi4j-sdk by Qi4j.
the class PropertyModel method bind.
@Override
public void bind(Resolution resolution) throws BindingException {
ValueTypeFactory factory = ValueTypeFactory.instance();
Class<?> declaringClass = ((Member) accessor()).getDeclaringClass();
Class<?> mainType = first(resolution.model().types());
valueType = factory.newValueType(type(), declaringClass, mainType, resolution.layer(), resolution.module());
builderInfo = new BuilderPropertyInfo();
if (type instanceof TypeVariable) {
type = Classes.resolveTypeVariable((TypeVariable) type, declaringClass, mainType);
}
}
use of java.lang.reflect.Member in project jackson-module-afterburner by FasterXML.
the class DeserializerModifier method findOptimizableProperties.
/*
/**********************************************************************
/* Internal methods
/**********************************************************************
*/
protected List<OptimizedSettableBeanProperty<?>> findOptimizableProperties(DeserializationConfig config, PropertyMutatorCollector collector, Iterator<SettableBeanProperty> propIterator) {
ArrayList<OptimizedSettableBeanProperty<?>> newProps = new ArrayList<OptimizedSettableBeanProperty<?>>();
// Ok, then, find any properties for which we could generate accessors
while (propIterator.hasNext()) {
SettableBeanProperty prop = propIterator.next();
AnnotatedMember member = prop.getMember();
Member jdkMember = member.getMember();
// if we ever support virtual properties, this would be null, so check, skip
if (jdkMember == null) {
continue;
}
// First: we can't access private fields or methods....
if (Modifier.isPrivate(jdkMember.getModifiers())) {
continue;
}
// 30-Jul-2012, tatu: [module-afterburner#6]: Needs to skip custom deserializers, if any.
if (prop.hasValueDeserializer()) {
if (!isDefaultDeserializer(prop.getValueDeserializer())) {
continue;
}
}
if (prop instanceof MethodProperty) {
// simple setter methods
Class<?> type = ((AnnotatedMethod) member).getRawParameterType(0);
if (type.isPrimitive()) {
if (type == Integer.TYPE) {
newProps.add(collector.addIntSetter(prop));
} else if (type == Long.TYPE) {
newProps.add(collector.addLongSetter(prop));
} else if (type == Boolean.TYPE) {
newProps.add(collector.addBooleanSetter(prop));
}
} else {
if (type == String.class) {
newProps.add(collector.addStringSetter(prop));
} else {
// any other Object types; we can at least call accessor
newProps.add(collector.addObjectSetter(prop));
}
}
} else if (prop instanceof FieldProperty) {
// be overwritable via Reflection)
if (Modifier.isFinal(prop.getMember().getMember().getModifiers())) {
continue;
}
Class<?> type = member.getRawType();
if (type.isPrimitive()) {
if (type == Integer.TYPE) {
newProps.add(collector.addIntField(prop));
} else if (type == Long.TYPE) {
newProps.add(collector.addLongField(prop));
} else if (type == Boolean.TYPE) {
newProps.add(collector.addBooleanField(prop));
}
} else {
if (type == String.class) {
newProps.add(collector.addStringField(prop));
} else {
// any other Object types; we can at least call accessor
newProps.add(collector.addObjectField(prop));
}
}
}
}
return newProps;
}
use of java.lang.reflect.Member in project roboguice by roboguice.
the class ShortNameFactoryTest method testGetMemberName_method.
public void testGetMemberName_method() throws Exception {
Member method = Obj.class.getDeclaredMethod("method", String.class);
assertEquals("#method(...)", nameFactory.getMemberName(method));
}
use of java.lang.reflect.Member in project roboguice by roboguice.
the class ShortNameFactoryTest method testGetMemberName_field.
public void testGetMemberName_field() throws Exception {
Member field = Obj.class.getDeclaredField("field");
assertEquals("field", nameFactory.getMemberName(field));
}
use of java.lang.reflect.Member in project roboguice by roboguice.
the class ShortNameFactoryTest method testGetMemberName_constructor.
public void testGetMemberName_constructor() throws Exception {
Member constructor = Obj.class.getDeclaredConstructor();
assertEquals("<init>", nameFactory.getMemberName(constructor));
}
Aggregations