Java 类com.fasterxml.jackson.databind.ser.BeanSerializerModifier 实例源码

项目:aws-xray-sdk-java    文件:EntityImpl.java   
@Override
public void setupModule(SetupContext setupContext) {
    super.setupModule(setupContext);
    setupContext.addBeanSerializerModifier(new BeanSerializerModifier() {
        @SuppressWarnings("unchecked")
        @Override
        public JsonSerializer<?> modifySerializer(SerializationConfig serializationConfig, BeanDescription beanDescription, JsonSerializer<?> jsonSerializer) {
            Class<?> beanClass = beanDescription.getBeanClass();
            if (Cause.class.isAssignableFrom(beanClass)) {
                return new CauseSerializer((JsonSerializer<Object>) jsonSerializer);
            } else if (StackTraceElement.class.isAssignableFrom(beanClass)) {
                return new StackTraceElementSerializer();
            }
            return jsonSerializer;
        }
    });
}
项目:java-triton    文件:PostprocessModificationModule.java   
@Override
public void setupModule(final SetupContext context) {
    super.setupModule(context);

    context.addBeanSerializerModifier(new BeanSerializerModifier() {

        public JsonSerializer<?> modifySerializer(
                final SerializationConfig config,
                final BeanDescription beanDesc,
                final JsonSerializer<?> serializer) {
            Class<?> valueClass = beanDesc.getType().getRawClass();

            if (serializer instanceof BeanSerializerBase
                    && MODIFIABLE_CLASSES.contains(valueClass)) {
                return new FlatteningModifySerializer(
                        (BeanSerializerBase) serializer);
            }

            return serializer;
        }
    });
}
项目:bowman    文件:JacksonClientModule.java   
public JacksonClientModule() {
    setSerializerModifier(new BeanSerializerModifier() {

        @Override
        public List<BeanPropertyWriter> changeProperties(SerializationConfig config, BeanDescription beanDesc,
                List<BeanPropertyWriter> beanProperties) {

            for (BeanPropertyWriter writer : beanProperties) {
                if (writer.getAnnotation(LinkedResource.class) != null) {
                    writer.assignSerializer(new LinkedResourceUriSerializer());
                }
            }

            return beanProperties;
        }
    });

    setMixInAnnotation(Resource.class, ResourceMixin.class);
}
项目:aem-core-wcm-components    文件:DefaultMethodSkippingModuleProvider.java   
public DefaultMethodSkippingModuleProvider() {
    module = new SimpleModule();
    module.setSerializerModifier(new BeanSerializerModifier() {
        @Override
        public List<BeanPropertyWriter> changeProperties(SerializationConfig config, BeanDescription beanDesc, List<BeanPropertyWriter> beanProperties) {

            return super.changeProperties(config, beanDesc, beanProperties.stream().filter(bpw -> {
                final AnnotatedMember jacksonMember = bpw.getMember();
                final Member member = jacksonMember.getMember();
                if (member instanceof Method) {
                    final Method method = (Method) member;
                    if (method.isDefault()) {
                        // only exclude default methods if they are defined on interfaces from the core components
                        return !method.getDeclaringClass().getName().startsWith(PACKAGE_CORE_COMPONENTS);
                    }
                }
                return true;
            }).collect(Collectors.toList()));
        }
    });
}
项目:logsniffer    文件:CoreAppConfig.java   
@Bean
public ObjectMapper jsonObjectMapper() {
    final ObjectMapper jsonMapper = new ObjectMapper();
    jsonMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
    jsonMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    jsonMapper.configure(Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
    jsonMapper.configure(Feature.ALLOW_SINGLE_QUOTES, true);
    jsonMapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, false);

    final SimpleModule module = new SimpleModule("FieldsMapping", Version.unknownVersion());
    module.setSerializerModifier(new BeanSerializerModifier() {
        @Override
        public JsonSerializer<?> modifyMapSerializer(final SerializationConfig config, final MapType valueType,
                final BeanDescription beanDesc, final JsonSerializer<?> serializer) {
            if (FieldsMap.class.isAssignableFrom(valueType.getRawClass())) {
                return new FieldsMapMixInLikeSerializer();
            } else {
                return super.modifyMapSerializer(config, valueType, beanDesc, serializer);
            }
        }
    });
    jsonMapper.registerModule(module);
    return jsonMapper;
}
项目:metadict    文件:MetadictJacksonModule.java   
@Override
public void setupModule(SetupContext context) {
    super.setupModule(context);

    context.addBeanSerializerModifier(new BeanSerializerModifier() {

        public JsonSerializer<?> modifySerializer(
                SerializationConfig config,
                BeanDescription beanDesc,
                JsonSerializer<?> serializer) {
            if (serializer instanceof BeanSerializerBase) {
                return new DictionaryObjectSerializer(
                        (BeanSerializerBase) serializer);
            }
            return serializer;
        }
    });
}
项目:QuizUpWinner    文件:SerializerFactoryConfig.java   
protected SerializerFactoryConfig(Serializers[] paramArrayOfSerializers1, Serializers[] paramArrayOfSerializers2, BeanSerializerModifier[] paramArrayOfBeanSerializerModifier)
{
  Serializers[] arrayOfSerializers1;
  if (paramArrayOfSerializers1 == null)
    arrayOfSerializers1 = NO_SERIALIZERS;
  else
    arrayOfSerializers1 = paramArrayOfSerializers1;
  this._additionalSerializers = arrayOfSerializers1;
  Serializers[] arrayOfSerializers2;
  if (paramArrayOfSerializers2 == null)
    arrayOfSerializers2 = NO_SERIALIZERS;
  else
    arrayOfSerializers2 = paramArrayOfSerializers2;
  this._additionalKeySerializers = arrayOfSerializers2;
  BeanSerializerModifier[] arrayOfBeanSerializerModifier;
  if (paramArrayOfBeanSerializerModifier == null)
    arrayOfBeanSerializerModifier = NO_MODIFIERS;
  else
    arrayOfBeanSerializerModifier = paramArrayOfBeanSerializerModifier;
  this._modifiers = arrayOfBeanSerializerModifier;
}
项目:hydra-java    文件:JacksonHydraModule.java   
public void setupModule(SetupContext context) {
    super.setupModule(context);

    context.addBeanSerializerModifier(new BeanSerializerModifier() {

        public JsonSerializer<?> modifySerializer(
                SerializationConfig config,
                BeanDescription beanDesc,
                JsonSerializer<?> serializer) {

            if (serializer instanceof BeanSerializerBase) {
                JacksonHydraSerializer jacksonHydraSerializer = new JacksonHydraSerializer(
                        (BeanSerializerBase) serializer, proxyUnwrapper);
                return jacksonHydraSerializer;
            } else {
                return serializer;
            }
        }
    });
}
项目:-deprecated-hlp-candidate    文件:SupernodeModule.java   
public SupernodeModule(Supplier<Boolean> production) {
    super("Supernode");

    this.formatter = HyperLedgerSettings.getInstance().getTxWireFormatter();

    addDeserializer(MasterPrivateKey.class, new MasterPrivateKeyDeserializer());
    addDeserializer(MasterPublicKey.class, new MasterPublicKeyDeserializer());
    addDeserializer(Script.class, new ScriptDeserializer());
    addDeserializer(UIAddress.class, new AddressDeserializer());
    addDeserializer(Transaction.class, new TransactionDeserializer(formatter));
    addDeserializer(Hash.class, new HashDeserializer());
    addDeserializer(TID.class, new TIDDeserializer());
    addDeserializer(BID.class, new BIDDeserializer());

    addSerializer(MasterPrivateKey.class, new MasterPrivateKeySerializer());
    addSerializer(MasterPublicKey.class, new MasterPublicKeySerializer());
    addSerializer(Script.class, new ScriptSerializer());
    addSerializer(UIAddress.class, new AddressSerializer());
    addSerializer(Transaction.class, new TransactionSerializer());
    addSerializer(Outpoint.class, new OutpointSerializer());
    addSerializer(Hash.class, new HashSerializer());
    addSerializer(TID.class, new TIDSerializer());
    addSerializer(BID.class, new BIDSerializer());

    this.setSerializerModifier(new BeanSerializerModifier() {
        @Override
        public JsonSerializer<?> modifySerializer(SerializationConfig config,
                                                  BeanDescription beanDesc,
                                                  JsonSerializer<?> serializer) {
            if (serializer instanceof MasterPublicKeySerializer) {
                MasterPublicKeySerializer.class.cast(serializer).setProduction(production.get());
            }
            if (serializer instanceof MasterPrivateKeySerializer) {
                MasterPrivateKeySerializer.class.cast(serializer).setProduction(production.get());
            }

            return serializer;
        }
    });
}
项目:autorest-clientruntime-for-java    文件:FlatteningSerializer.java   
/**
 * Gets a module wrapping this serializer as an adapter for the Jackson
 * ObjectMapper.
 *
 * @param mapper the object mapper for default serializations
 * @return a simple module to be plugged onto Jackson ObjectMapper.
 */
public static SimpleModule getModule(final ObjectMapper mapper) {
    SimpleModule module = new SimpleModule();
    module.setSerializerModifier(new BeanSerializerModifier() {
        @Override
        public JsonSerializer<?> modifySerializer(SerializationConfig config, BeanDescription beanDesc, JsonSerializer<?> serializer) {
            if (beanDesc.getBeanClass().getAnnotation(JsonFlatten.class) != null) {
                return new FlatteningSerializer(beanDesc.getBeanClass(), serializer, mapper);
            }
            return serializer;
        }
    });
    return module;
}
项目:emodb    文件:LazyJsonModule.java   
@Override
public void setupModule(SetupContext context) {
    // Modify the Map serializer to the delegate if it matches Map<String, ?>
    context.addBeanSerializerModifier(new BeanSerializerModifier() {
        @Override
        public JsonSerializer<?> modifyMapSerializer(SerializationConfig config, MapType valueType, BeanDescription beanDesc,
                                                     JsonSerializer<?> serializer) {
            if (valueType.getKeyType().equals(SimpleType.construct(String.class))) {
                return new DelegatingMapSerializer(serializer);
            }
            return serializer;
        }
    });
}
项目:QuizUpWinner    文件:SerializerFactoryConfig.java   
public final SerializerFactoryConfig withSerializerModifier(BeanSerializerModifier paramBeanSerializerModifier)
{
  if (paramBeanSerializerModifier == null)
    throw new IllegalArgumentException("Can not pass null modifier");
  BeanSerializerModifier[] arrayOfBeanSerializerModifier = (BeanSerializerModifier[])ArrayBuilders.insertInListNoDup(this._modifiers, paramBeanSerializerModifier);
  return new SerializerFactoryConfig(this._additionalSerializers, this._additionalKeySerializers, arrayOfBeanSerializerModifier);
}
项目:hydra-java    文件:JacksonHydraSerializerTest.java   
@Before
public void setUp() {
    mapper = new ObjectMapper();
    // see https://github.com/json-ld/json-ld.org/issues/76
    mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);

    mapper.registerModule(new SimpleModule() {

        public void setupModule(SetupContext context) {
            super.setupModule(context);

            context.addBeanSerializerModifier(new BeanSerializerModifier() {

                public JsonSerializer<?> modifySerializer(
                        SerializationConfig config,
                        BeanDescription beanDesc,
                        JsonSerializer<?> serializer) {

                    if (serializer instanceof BeanSerializerBase) {
                        return new JacksonHydraSerializer(
                                (BeanSerializerBase) serializer);
                    } else {
                        return serializer;
                    }
                }
            });
        }
    });

}
项目:spring-cloud-netflix    文件:RestTemplateTransportClientFactory.java   
public static BeanSerializerModifier createJsonSerializerModifier() {//final KeyFormatter keyFormatter, final boolean compactMode) {
    return new BeanSerializerModifier() {
        @Override
        public JsonSerializer<?> modifySerializer(SerializationConfig config,
                                                  BeanDescription beanDesc, JsonSerializer<?> serializer) {
            /*if (beanDesc.getBeanClass().isAssignableFrom(Applications.class)) {
                return new ApplicationsJsonBeanSerializer((BeanSerializerBase) serializer, keyFormatter);
            }*/
            if (beanDesc.getBeanClass().isAssignableFrom(InstanceInfo.class)) {
                return new InstanceInfoJsonBeanSerializer((BeanSerializerBase) serializer, false);
            }
            return serializer;
        }
    };
}
项目:sdcct    文件:SdcctModule.java   
public void setBeanSerializerModifiers(List<BeanSerializerModifier> beanSerializerModifiers) {
    this.beanSerializerModifiers = beanSerializerModifiers;
}
项目:QuizUpWinner    文件:SerializerFactoryConfig.java   
public final Iterable<BeanSerializerModifier> serializerModifiers()
{
  return ArrayBuilders.arrayAsIterable(this._modifiers);
}
项目:QuizUpWinner    文件:SimpleModule.java   
public SimpleModule setSerializerModifier(BeanSerializerModifier paramBeanSerializerModifier)
{
  this._serializerModifier = paramBeanSerializerModifier;
  return this;
}
项目:geo-publisher    文件:JsonService.java   
public static String toJson(Service service) {
    ObjectMapper objectMapper = new ObjectMapper();

    SimpleModule module = new SimpleModule("JsonService", Version.unknownVersion()) {

        private static final long serialVersionUID = -5062700192805231474L;

        @Override
        public void setupModule(SetupContext context) {
            context.addBeanSerializerModifier(new BeanSerializerModifier() {

                @Override
                public JsonSerializer<?> modifySerializer(SerializationConfig config, BeanDescription beanDesc, JsonSerializer<?> serializer) {
                    Class<?> handledType = serializer.handledType();

                    if(serializer instanceof BeanSerializerBase) {
                        BeanSerializerBase beanSerializerBase = (BeanSerializerBase)serializer;

                        if(Service.class.equals(handledType)) {
                            return new ServiceSerializer(beanSerializerBase);
                        }

                        if(DatasetLayer.class.isAssignableFrom(handledType)) {
                            return new DatasetLayerSerializer(beanSerializerBase);
                        }
                    }

                    return serializer;
                }
            });
        }       
    };

    objectMapper.registerModule(new Jdk8Module());
    objectMapper.registerModule(module);

    objectMapper.setSerializationInclusion(Include.NON_EMPTY);

    objectMapper.addMixIn(Service.class, ServiceMixin.class);
    objectMapper.addMixIn(DatasetLayerRef.class, DatasetLayerRefMixin.class);
    objectMapper.addMixIn(VectorDatasetLayer.class, VectorDatasetLayerMixin.class);
    objectMapper.addMixIn(GroupLayerRef.class, GroupLayerRefMixin.class);
    objectMapper.addMixIn(GroupLayer.class, GroupLayerMixin.class);
    objectMapper.addMixIn(StyleRef.class, StyleRefMixin.class);     
    objectMapper.addMixIn(Tiling.class, TilingMixin.class);

    try {
        return objectMapper.writeValueAsString(service);
    } catch(Exception e) {
        throw new RuntimeException("Couldn't generate json from service", e);
    }
}
项目:imagej-server    文件:DefaultJsonService.java   
/**
 * Constructs and initializes a JsonService with an {@link ObjectService}.
 * 
 * @param objectService
 */
public DefaultJsonService(final ObjectService objectService) {

    idToObjDeserializer = new UntypedObjectDeserializer(null, null) {

        @Override
        public Object deserialize(JsonParser p, DeserializationContext ctxt)
            throws IOException, JsonProcessingException
        {
            final Object obj = super.deserialize(p, ctxt);
            if (!(obj instanceof String && ((String) obj).startsWith("object:")))
                return obj;
            final String id = (String) obj;
            if (!objectService.contains(id)) {
                throw new JsonMappingException(p, "Object does not exist");
            }
            final ObjectInfo info = objectService.find(id);
            info.updateLastUsed();
            return info.getObject();
        }
    };

    final JsonSerializer<Object> objToIdSerializer =
        new JsonSerializer<Object>()
    {

            @Override
            public void serialize(Object value, JsonGenerator gen,
                SerializerProvider serializers) throws IOException,
                JsonProcessingException
        {
                gen.writeString(objectService.register(value, "DefaultJsonService"));
            }

        };

    final SimpleModule objToIdModule = new SimpleModule();
    objToIdModule.setSerializerModifier(new BeanSerializerModifier() {

        @Override
        public JsonSerializer<?> modifySerializer(SerializationConfig config,
            BeanDescription beanDesc, JsonSerializer<?> serializer)
        {
            if (Mixins.support(beanDesc.getBeanClass())) return serializer;
            // If the serialized class is unknown (i.e. serialized using the general
            // BeanSerializer) or should not be serialized (i.e. complicated class
            // implemented interfaces such as Iterable), would be serialized as an
            // ID.
            if (serializer instanceof BeanSerializer) return objToIdSerializer;
            if (notSerialized(beanDesc.getBeanClass())) return objToIdSerializer;
            return serializer;

        }
    });
    objToIdMapper = new ObjectMapper();
    objToIdMapper.registerModule(objToIdModule);

    // register Jackson MixIns to obtain better json output format for some
    // specific types
    Mixins.registerMixIns(objToIdMapper);
}
项目:joyplus-tv    文件:Module.java   
/**
 * Method that module can use to register additional modifier objects to
 * customize configuration and construction of bean serializers.
 * 
 * @param mod Modifier to register
 */
public void addBeanSerializerModifier(BeanSerializerModifier mod);
项目:QuizUpWinner    文件:Module.java   
public abstract void addBeanSerializerModifier(BeanSerializerModifier paramBeanSerializerModifier);