Example usage for com.fasterxml.jackson.databind BeanDescription getBeanClass

List of usage examples for com.fasterxml.jackson.databind BeanDescription getBeanClass

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind BeanDescription getBeanClass.

Prototype

public Class<?> getBeanClass() 

Source Link

Usage

From source file:org.apache.ode.jacob.soup.jackson.JacobModule.java

public JacobModule() {
    super("jacob-module", Version.unknownVersion());

    final ExecutionQueueImplSerializer cqis = new ExecutionQueueImplSerializer();
    addSerializer(ChannelProxy.class, new ChannelProxySerializer(cqis));
    addSerializer(Message.class, new MessageSerializer());
    addSerializer(JacksonExecutionQueueImpl.class, cqis);
    addSerializer(ChannelRef.class, new ChannelRefSerializer(cqis));
    addDeserializer(JacksonExecutionQueueImpl.class, new ExecutionQueueImplDeserializer());
    addDeserializer(Message.class, new MessageDeserializer());
    addDeserializer(Channel.class, new ChannelProxyDeserializer());
    addDeserializer(ChannelRef.class, new ChannelRefDeserializer());

    setDeserializerModifier(new BeanDeserializerModifier() {

        public JsonDeserializer<?> modifyDeserializer(DeserializationConfig config, BeanDescription beanDesc,
                JsonDeserializer<?> deserializer) {

            // use channel proxy deserializer for channels.
            if (Channel.class.isAssignableFrom(beanDesc.getBeanClass())
                    && beanDesc.getBeanClass().isInterface()) {
                return new ChannelProxyDeserializer();
            }/*from ww  w.java  2 s. c om*/

            return super.modifyDeserializer(config, beanDesc, deserializer);
        }
    });
}

From source file:com.logsniffer.config.BeanConfigFactoryManager.java

@SuppressWarnings("unchecked")
@PostConstruct/*from w w  w  .  j a  va2  s  .c  o  m*/
private void initJsonMapper() {
    final SimpleModule module = new SimpleModule();
    module.setDeserializerModifier(new BeanDeserializerModifier() {
        @Override
        public JsonDeserializer<?> modifyDeserializer(final DeserializationConfig config,
                final BeanDescription beanDesc, final JsonDeserializer<?> deserializer) {
            if (ConfiguredBean.class.isAssignableFrom(beanDesc.getBeanClass())) {
                return new ConfiguredBeanDeserializer(deserializer);
            }
            return deserializer;
        }
    });
    jsonMapper.registerModule(module);
    if (postConstructors != null) {
        for (final BeanPostConstructor<?> bpc : postConstructors) {
            mappedPostConstrucors.put(bpc.getClass(), bpc);
        }
    }

    // Register sub beans
    final ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(
            false);
    final AssignableTypeFilter filter4configBenas = new AssignableTypeFilter(ConfiguredBean.class);
    scanner.addIncludeFilter(filter4configBenas);

    for (final BeanDefinition bd : scanner.findCandidateComponents("com.logsniffer")) {
        try {
            final Class<? extends ConfiguredBean> clazz = (Class<? extends ConfiguredBean>) Class
                    .forName(bd.getBeanClassName());
            final JsonTypeName jsonNameAnnotation = clazz.getAnnotation(JsonTypeName.class);
            final List<String> names = new ArrayList<String>();
            configBeanNames.put(clazz, names);
            if (jsonNameAnnotation != null) {
                names.add(jsonNameAnnotation.value());
                if (jsonNameAnnotation.deprecated() != null) {
                    for (final String dep : jsonNameAnnotation.deprecated()) {
                        names.add(dep);
                    }
                }
            }
            names.add(clazz.getSimpleName());
            logger.debug("Registered JSON type {} for following names: {}", clazz, names);
        } catch (final ClassNotFoundException e) {
            logger.warn("Failed to register JSON type name for " + bd.getBeanClassName(), e);
        }
    }
}