Search in sources :

Example 46 with Member

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);
    }
}
Also used : TypeVariable(java.lang.reflect.TypeVariable) ValueTypeFactory(org.qi4j.runtime.types.ValueTypeFactory) Member(java.lang.reflect.Member)

Example 47 with Member

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;
}
Also used : FieldProperty(com.fasterxml.jackson.databind.deser.impl.FieldProperty) MethodProperty(com.fasterxml.jackson.databind.deser.impl.MethodProperty) Member(java.lang.reflect.Member)

Example 48 with Member

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));
}
Also used : Member(java.lang.reflect.Member)

Example 49 with Member

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));
}
Also used : Member(java.lang.reflect.Member)

Example 50 with Member

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));
}
Also used : Member(java.lang.reflect.Member)

Aggregations

Member (java.lang.reflect.Member)135 Method (java.lang.reflect.Method)41 Field (java.lang.reflect.Field)30 ArrayList (java.util.ArrayList)13 AccessibleObject (java.lang.reflect.AccessibleObject)12 Type (java.lang.reflect.Type)12 Annotation (java.lang.annotation.Annotation)11 Constructor (java.lang.reflect.Constructor)10 TypeVariable (java.lang.reflect.TypeVariable)9 InvocationTargetException (java.lang.reflect.InvocationTargetException)8 ParameterizedType (java.lang.reflect.ParameterizedType)7 Map (java.util.Map)7 MetaInfo (org.qi4j.api.common.MetaInfo)7 InjectionPoint (com.google.inject.spi.InjectionPoint)6 AnnotatedElement (java.lang.reflect.AnnotatedElement)6 LinkedHashSet (java.util.LinkedHashSet)6 Optional (org.qi4j.api.common.Optional)6 ValueConstraintsInstance (org.qi4j.runtime.composite.ValueConstraintsInstance)6 ValueConstraintsModel (org.qi4j.runtime.composite.ValueConstraintsModel)6 HashSet (java.util.HashSet)5