@Override protected PropertyMutator checkAndMergeMutators(String name, LinkedList<PropertyMutator> mutators) { PropertyMutator mutator = _mostSpecificPropertyDeclaringClass(name, mutators); return VisibilityFilter.ABSTRACT.isVisible(mutator.getModifiers()) ? mutator : null; }
@Override public List<BeanCreator> provideBeanCreators(Type ofType, Genson genson) { List<BeanCreator> creators = new ArrayList<BeanCreator>(); for (Class<?> clazz = getRawClass(ofType); clazz != null && !Object.class.equals(clazz); clazz = clazz.getSuperclass()) { provideMethodCreators(clazz, creators, ofType, genson); } Type viewForType = TypeUtil.expandType(BeanView.class.getTypeParameters()[0], ofType); List<BeanCreator> oCtrs = super.provideBeanCreators(viewForType, genson); creators.addAll(oCtrs); return creators; }
@Override public List<BeanCreator> provideBeanCreators(Type ofType, Genson genson) { List<BeanCreator> creators = new ArrayList<BeanCreator>(); Class<?> ofClass = getRawClass(ofType); if (ofClass.isMemberClass() && (ofClass.getModifiers() & Modifier.STATIC) == 0) return creators; provideConstructorCreators(ofType, creators, genson); for (Class<?> clazz = ofClass; clazz != null && !Object.class.equals(clazz); clazz = clazz .getSuperclass()) { provideMethodCreators(clazz, creators, ofType, genson); } return creators; }
@Override public void provideBeanPropertyMutators(Type ofType, Map<String, LinkedList<PropertyMutator>> mutatorsMap, Genson genson) { ArrayDeque<Class<?>> classesToInspect = new ArrayDeque<Class<?>>(); classesToInspect.push(getRawClass(ofType)); while (!classesToInspect.isEmpty()) { Class<?> clazz = classesToInspect.pop(); if (clazz.getSuperclass() != null && clazz.getSuperclass() != Object.class) { classesToInspect.push(clazz.getSuperclass()); } for (Class<?> anInterface : clazz.getInterfaces()) classesToInspect.push(anInterface); // first lookup for fields if (useFields) provideFieldMutators(clazz, mutatorsMap, ofType, genson); // and now search methods (getters) if (useGettersAndSetters) provideMethodMutators(clazz, mutatorsMap, ofType, genson); } }
@Override public void provideBeanPropertyAccessors(Type ofType, Map<String, LinkedList<PropertyAccessor>> accessorsMap, Genson genson) { ArrayDeque<Class<?>> classesToInspect = new ArrayDeque<Class<?>>(); classesToInspect.push(getRawClass(ofType)); while (!classesToInspect.isEmpty()) { Class<?> clazz = classesToInspect.pop(); if (clazz.getSuperclass() != null && clazz.getSuperclass() != Object.class) { classesToInspect.push(clazz.getSuperclass()); } for (Class<?> anInterface : clazz.getInterfaces()) classesToInspect.push(anInterface); // first lookup for fields if (useFields) provideFieldAccessors(clazz, accessorsMap, ofType, genson); // and now search methods (getters) if (useGettersAndSetters) provideMethodAccessors(clazz, accessorsMap, ofType, genson); } }
/** * Creates the standard BeanDescriptorProvider that will be used to provide * {@link com.owlike.genson.reflect.BeanDescriptor BeanDescriptor} instances for * serialization/deserialization of all types that couldn't be handled by standard and * custom converters and converter factories. * * @return the BeanDescriptorProvider instance. */ protected BeanDescriptorProvider createBeanDescriptorProvider() { ContextualConverterFactory contextualConverterFactory = new ContextualConverterFactory(contextualFactories); BeanPropertyFactory beanPropertyFactory = createBeanPropertyFactory(); List<BeanDescriptorProvider> providers = new ArrayList<BeanDescriptorProvider>(); for (GensonBundle bundle : _bundles) { BeanDescriptorProvider provider = bundle.createBeanDescriptorProvider(contextualConverterFactory, beanPropertyFactory, getMutatorAccessorResolver(), getPropertyNameResolver(), this); if (provider != null) providers.add(provider); } providers.add(new BaseBeanDescriptorProvider( new AbstractBeanDescriptorProvider.ContextualConverterFactory(contextualFactories), createBeanPropertyFactory(), getMutatorAccessorResolver(), getPropertyNameResolver(), useGettersAndSetters, useFields, true )); return new CompositeBeanDescriptorProvider(providers); }
hasCreatorAnnotation = true; else _throwCouldCreateBeanDescriptor(ofClass, " only one @JsonCreator annotation per class is allowed.");
views.put(rawClass, ctr.newInstance()); descriptor = super.provide(ofClass, ofType, genson); descriptors.put(rawClass, descriptor); } catch (SecurityException e) {
@Override public void provideBeanPropertyMutators(Type ofType, Map<String, LinkedList<PropertyMutator>> mutatorsMap, Genson genson) { ArrayDeque<Class<?>> classesToInspect = new ArrayDeque<Class<?>>(); classesToInspect.push(getRawClass(ofType)); while (!classesToInspect.isEmpty()) { Class<?> clazz = classesToInspect.pop(); if (clazz.getSuperclass() != null && clazz.getSuperclass() != Object.class) { classesToInspect.push(clazz.getSuperclass()); } for (Class<?> anInterface : clazz.getInterfaces()) classesToInspect.push(anInterface); // first lookup for fields if (useFields) provideFieldMutators(clazz, mutatorsMap, ofType, genson); // and now search methods (getters) if (useGettersAndSetters) provideMethodMutators(clazz, mutatorsMap, ofType, genson); } }
@Override public void provideBeanPropertyAccessors(Type ofType, Map<String, LinkedList<PropertyAccessor>> accessorsMap, Genson genson) { ArrayDeque<Class<?>> classesToInspect = new ArrayDeque<Class<?>>(); classesToInspect.push(getRawClass(ofType)); while (!classesToInspect.isEmpty()) { Class<?> clazz = classesToInspect.pop(); if (clazz.getSuperclass() != null && clazz.getSuperclass() != Object.class) { classesToInspect.push(clazz.getSuperclass()); } for (Class<?> anInterface : clazz.getInterfaces()) classesToInspect.push(anInterface); // first lookup for fields if (useFields) provideFieldAccessors(clazz, accessorsMap, ofType, genson); // and now search methods (getters) if (useGettersAndSetters) provideMethodAccessors(clazz, accessorsMap, ofType, genson); } }
/** * Creates the standard BeanDescriptorProvider that will be used to provide * {@link com.owlike.genson.reflect.BeanDescriptor BeanDescriptor} instances for * serialization/deserialization of all types that couldn't be handled by standard and * custom converters and converter factories. * * @return the BeanDescriptorProvider instance. */ protected BeanDescriptorProvider createBeanDescriptorProvider() { ContextualConverterFactory contextualConverterFactory = new ContextualConverterFactory(contextualFactories); BeanPropertyFactory beanPropertyFactory = createBeanPropertyFactory(); List<BeanDescriptorProvider> providers = new ArrayList<BeanDescriptorProvider>(); for (GensonBundle bundle : _bundles) { BeanDescriptorProvider provider = bundle.createBeanDescriptorProvider(contextualConverterFactory, beanPropertyFactory, getMutatorAccessorResolver(), getPropertyNameResolver(), this); if (provider != null) providers.add(provider); } providers.add(new BaseBeanDescriptorProvider( new AbstractBeanDescriptorProvider.ContextualConverterFactory(contextualFactories), createBeanPropertyFactory(), getMutatorAccessorResolver(), getPropertyNameResolver(), useGettersAndSetters, useFields, true )); return new CompositeBeanDescriptorProvider(providers); }
hasCreatorAnnotation = true; else _throwCouldCreateBeanDescriptor(ofClass, " only one @JsonCreator annotation per class is allowed.");
views.put(rawClass, ctr.newInstance()); descriptor = super.provide(ofClass, ofType, genson); descriptors.put(rawClass, descriptor); } catch (SecurityException e) {
@Override public List<BeanCreator> provideBeanCreators(Type ofType, Genson genson) { List<BeanCreator> creators = new ArrayList<BeanCreator>(); Class<?> ofClass = getRawClass(ofType); if (ofClass.isMemberClass() && (ofClass.getModifiers() & Modifier.STATIC) == 0) return creators; provideConstructorCreators(ofType, creators, genson); for (Class<?> clazz = ofClass; clazz != null && !Object.class.equals(clazz); clazz = clazz .getSuperclass()) { provideMethodCreators(clazz, creators, ofType, genson); } return creators; }
@Override protected PropertyAccessor checkAndMergeAccessors(String name, LinkedList<PropertyAccessor> accessors) { PropertyAccessor accessor = _mostSpecificPropertyDeclaringClass(name, accessors); return VisibilityFilter.ABSTRACT.isVisible(accessor.getModifiers()) ? accessor : null; }
@Override public List<BeanCreator> provideBeanCreators(Type ofType, Genson genson) { List<BeanCreator> creators = new ArrayList<BeanCreator>(); for (Class<?> clazz = getRawClass(ofType); clazz != null && !Object.class.equals(clazz); clazz = clazz.getSuperclass()) { provideMethodCreators(clazz, creators, ofType, genson); } Type viewForType = TypeUtil.expandType(BeanView.class.getTypeParameters()[0], ofType); List<BeanCreator> oCtrs = super.provideBeanCreators(viewForType, genson); creators.addAll(oCtrs); return creators; }
@Override protected PropertyMutator checkAndMergeMutators(String name, LinkedList<PropertyMutator> mutators) { PropertyMutator mutator = _mostSpecificPropertyDeclaringClass(name, mutators); return VisibilityFilter.ABSTRACT.isVisible(mutator.getModifiers()) ? mutator : null; }
@Override protected PropertyAccessor checkAndMergeAccessors(String name, LinkedList<PropertyAccessor> accessors) { PropertyAccessor accessor = _mostSpecificPropertyDeclaringClass(name, accessors); return VisibilityFilter.ABSTRACT.isVisible(accessor.getModifiers()) ? accessor : null; }