private Trilean filter(String actualName, Class<?> fromClass, Class<?> propertyType, boolean exclude) { if ((field == null || actualName.equalsIgnoreCase(field)) && (declaringClass == null || declaringClass.isAssignableFrom(fromClass)) && (ofType == null || ofType.isAssignableFrom(TypeUtil.wrap(propertyType)))) return exclude ? Trilean.FALSE : Trilean.TRUE; return Trilean.UNKNOWN; } }
private Trilean filter(String actualName, Class<?> fromClass, Class<?> propertyType, boolean exclude) { if ((field == null || actualName.equalsIgnoreCase(field)) && (declaringClass == null || declaringClass.isAssignableFrom(fromClass)) && (ofType == null || ofType.isAssignableFrom(TypeUtil.wrap(propertyType)))) return exclude ? Trilean.FALSE : Trilean.TRUE; return Trilean.UNKNOWN; } }
Converter<?> provide(BeanProperty property, Genson genson) { Type type = property.getType(); for (Iterator<? extends ContextualFactory<?>> it = contextualFactories.iterator(); it .hasNext(); ) { ContextualFactory<?> factory = it.next(); Converter<?> object = null; Type factoryType = lookupGenericType(ContextualFactory.class, factory.getClass()); factoryType = expandType(factoryType, factory.getClass()); Type factoryParameter = typeOf(0, factoryType); if (type instanceof Class<?> && ((Class<?>) type).isPrimitive()) type = wrap((Class<?>) type); if (match(type, factoryParameter, false) && (object = factory.create(property, genson)) != null) { return object; } } return null; } }
Converter<?> provide(BeanProperty property, Genson genson) { Type type = property.getType(); for (Iterator<? extends ContextualFactory<?>> it = contextualFactories.iterator(); it .hasNext(); ) { ContextualFactory<?> factory = it.next(); Converter<?> object = null; Type factoryType = lookupGenericType(ContextualFactory.class, factory.getClass()); factoryType = expandType(factoryType, factory.getClass()); Type factoryParameter = typeOf(0, factoryType); if (type instanceof Class<?> && ((Class<?>) type).isPrimitive()) type = wrap((Class<?>) type); if (match(type, factoryParameter, false) && (object = factory.create(property, genson)) != null) { return object; } } return null; } }
@SuppressWarnings("unchecked") protected <T> T provide(Class<T> forClass, Type withParameterType, Map<Type, ? extends T> fromTypeMap, Genson genson) { if (fromTypeMap.containsKey(withParameterType)) return fromTypeMap.get(withParameterType); Type wrappedParameterType = withParameterType; if (withParameterType instanceof Class<?> && ((Class<?>) withParameterType).isPrimitive()) wrappedParameterType = TypeUtil.wrap((Class<?>) withParameterType); for (Iterator<Factory<?>> it = factories.iterator(); it.hasNext(); ) { Factory<?> factory = it.next(); Object object; Type factoryType = TypeUtil.lookupGenericType(Factory.class, factory.getClass()); factoryType = TypeUtil.expandType(factoryType, factory.getClass()); // it is a parameterized type and we want the parameter corresponding to Serializer from // Factory<Serializer<?>> factoryType = TypeUtil.typeOf(0, factoryType); Type factoryParameter = TypeUtil.typeOf(0, factoryType); if (forClass.isAssignableFrom(TypeUtil.getRawClass(factoryType)) && TypeUtil.match(wrappedParameterType, factoryParameter, false) && (object = factory.create(withParameterType, genson)) != null) { return forClass.cast(object); } } return (T) beanDescriptorProvider.provide(TypeUtil.getRawClass(withParameterType), withParameterType, genson); }
@SuppressWarnings("unchecked") protected <T> T provide(Class<T> forClass, Type withParameterType, Map<Type, ? extends T> fromTypeMap, Genson genson) { if (fromTypeMap.containsKey(withParameterType)) return fromTypeMap.get(withParameterType); Type wrappedParameterType = withParameterType; if (withParameterType instanceof Class<?> && ((Class<?>) withParameterType).isPrimitive()) wrappedParameterType = TypeUtil.wrap((Class<?>) withParameterType); for (Iterator<Factory<?>> it = factories.iterator(); it.hasNext(); ) { Factory<?> factory = it.next(); Object object; Type factoryType = TypeUtil.lookupGenericType(Factory.class, factory.getClass()); factoryType = TypeUtil.expandType(factoryType, factory.getClass()); // it is a parameterized type and we want the parameter corresponding to Serializer from // Factory<Serializer<?>> factoryType = TypeUtil.typeOf(0, factoryType); Type factoryParameter = TypeUtil.typeOf(0, factoryType); if (forClass.isAssignableFrom(TypeUtil.getRawClass(factoryType)) && TypeUtil.match(wrappedParameterType, factoryParameter, false) && (object = factory.create(withParameterType, genson)) != null) { return forClass.cast(object); } } return (T) beanDescriptorProvider.provide(TypeUtil.getRawClass(withParameterType), withParameterType, genson); }
if (propertyClass.isPrimitive()) propertyClass = wrap(propertyClass);
if (propertyClass.isPrimitive()) propertyClass = wrap(propertyClass);
propertyType = wrap(getRawClass(propertyType));
propertyType = wrap(getRawClass(propertyType));