/** * Customized {@link TypeResolverBuilder} that provides type resolver builders * used with so-called "default typing" * (see {@link ObjectMapper#enableDefaultTyping()} for details). *<p> * Type resolver construction is based on configuration: implementation takes care * of only providing builders in cases where type information should be applied. * This is important since build calls may be sent for any and all types, and * type information should NOT be applied to all of them. */ public static class DefaultTypeResolverBuilder extends StdTypeResolverBuilder { /** * Definition of what types is this default typer valid for. */ protected final DefaultTyping _appliesFor; public DefaultTypeResolverBuilder(DefaultTyping t) { _appliesFor = t; } @Override public TypeDeserializer buildTypeDeserializer(DeserializationConfig config, JavaType baseType, Collection<NamedType> subtypes, BeanProperty property) { return useForType(baseType) ? super.buildTypeDeserializer(config, baseType, subtypes, property) : null; } @Override
/** * Customized {@link TypeResolverBuilder} that provides type resolver builders * used with so-called "default typing" * (see {@link ObjectMapper#enableDefaultTyping()} for details). *<p> * Type resolver construction is based on configuration: implementation takes care * of only providing builders in cases where type information should be applied. * This is important since build calls may be sent for any and all types, and * type information should NOT be applied to all of them. */ public static class DefaultTypeResolverBuilder extends StdTypeResolverBuilder { /** * Definition of what types is this default typer valid for. */ protected final DefaultTyping _appliesFor; public DefaultTypeResolverBuilder(DefaultTyping t) { _appliesFor = t; } @Override public TypeDeserializer buildTypeDeserializer(DeserializationConfig config, JavaType baseType, Collection<NamedType> subtypes, BeanProperty property) { return useForType(baseType) ? super.buildTypeDeserializer(config, baseType, subtypes, property) : null; } @Override
/** * Customized {@link TypeResolverBuilder} that provides type resolver builders * used with so-called "default typing" * (see {@link ObjectMapper#enableDefaultTyping()} for details). *<p> * Type resolver construction is based on configuration: implementation takes care * of only providing builders in cases where type information should be applied. * This is important since build calls may be sent for any and all types, and * type information should NOT be applied to all of them. */ public static class DefaultTypeResolverBuilder extends StdTypeResolverBuilder { /** * Definition of what types is this default typer valid for. */ protected final DefaultTyping _appliesFor; public DefaultTypeResolverBuilder(DefaultTyping t) { _appliesFor = t; } @Override public TypeDeserializer buildTypeDeserializer(DeserializationConfig config, JavaType baseType, Collection<NamedType> subtypes, BeanProperty property) { return useForType(baseType) ? super.buildTypeDeserializer(config, baseType, subtypes, property) : null; } @Override
m.setVisibilityChecker(VisibilityChecker.Std.defaultInstance() .withFieldVisibility(JsonAutoDetect.Visibility.ANY) .withSetterVisibility(JsonAutoDetect.Visibility.NONE));
@Override public void start() { mapper = new ObjectMapper(); mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, false); mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, false); mapper.configure(SerializationConfig.Feature.AUTO_DETECT_GETTERS, false); mapper.configure(SerializationConfig.Feature.AUTO_DETECT_IS_GETTERS, false); mapper.configure(SerializationConfig.Feature.AUTO_DETECT_FIELDS, true); mapper.configure(SerializationConfig.Feature.CAN_OVERRIDE_ACCESS_MODIFIERS, true); mapper.configure(SerializationConfig.Feature.USE_STATIC_TYPING, false); mapper.configure(SerializationConfig.Feature.WRITE_ENUMS_USING_TO_STRING, false); mapper.configure(SerializationConfig.Feature.SORT_PROPERTIES_ALPHABETICALLY, true); mapper.configure(SerializationConfig.Feature.USE_ANNOTATIONS, true); mapper.configure(DeserializationConfig.Feature.USE_ANNOTATIONS, true); mapper.configure(DeserializationConfig.Feature.AUTO_DETECT_SETTERS, false); mapper.configure(DeserializationConfig.Feature.AUTO_DETECT_CREATORS, true); mapper.configure(DeserializationConfig.Feature.AUTO_DETECT_FIELDS, true); mapper.configure(DeserializationConfig.Feature.USE_GETTERS_AS_SETTERS, false); mapper.configure(DeserializationConfig.Feature.CAN_OVERRIDE_ACCESS_MODIFIERS, true); mapper.configure(DeserializationConfig.Feature.READ_ENUMS_USING_TO_STRING, true); mapper.setVisibilityChecker(new VisibilityChecker.Std(ANY, ANY, ANY, ANY, ANY)); super.start(); }
@Override public Std withVisibility(JsonMethod method, Visibility v) { switch (method) { case GETTER: return withGetterVisibility(v); case SETTER: return withSetterVisibility(v); case CREATOR: return withCreatorVisibility(v); case FIELD: return withFieldVisibility(v); case IS_GETTER: return withIsGetterVisibility(v); case ALL: return with(v); //case NONE: // break; } return this; }
@Override public Std withVisibility(JsonMethod method, Visibility v) { switch (method) { case GETTER: return withGetterVisibility(v); case SETTER: return withSetterVisibility(v); case CREATOR: return withCreatorVisibility(v); case FIELD: return withFieldVisibility(v); case IS_GETTER: return withIsGetterVisibility(v); case ALL: return with(v); //case NONE: // break; } return this; }
public JsonCommandWriter() { mapper = new ObjectMapper(); // Pay attention to fields of objects, not getters mapper.setVisibilityChecker(VisibilityChecker.Std.defaultInstance() .withGetterVisibility(JsonAutoDetect.Visibility.NONE) .withIsGetterVisibility(JsonAutoDetect.Visibility.NONE) .withFieldVisibility(JsonAutoDetect.Visibility.ANY)); SerializationConfig config=mapper.getSerializationConfig(); config.without(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS); // Specialized serializers SimpleModule module = new SimpleModule("insight-json", new Version(1, 7, 2, "insight")); module.addSerializer(Frame.class, new JsonCustomFrameSerializer()); module.addSerializer(FrameId.class, new JsonFrameIdSerializer()); module.addSerializer(TraceId.class, new JsonTraceIdSerializer()); module.addSerializer(ResourceKey.class, new JsonResourceKeySerializer()); module.addSerializer(SparseHistogram.class, new JsonSparseHistogramSerializer()); module.addSerializer(HistogramDefinition.class, new JsonHistogramDefinitionSerializer()); module.addSerializer(ApplicationName.class, new JsonApplicationNameSerializer()); mapper.registerModule(module); }
@Override public Std with(JsonAutoDetect ann) { if (ann == null) return this; Std curr = this; JsonMethod[] incl = ann.value(); Visibility v; v = hasMethod(incl, JsonMethod.GETTER) ? ann.getterVisibility() : Visibility.NONE; curr = curr.withGetterVisibility(v); v = hasMethod(incl, JsonMethod.IS_GETTER) ? ann.isGetterVisibility() : Visibility.NONE; curr = curr.withIsGetterVisibility(v); v = hasMethod(incl, JsonMethod.SETTER) ? ann.setterVisibility() : Visibility.NONE; curr = curr.withSetterVisibility(v); v = hasMethod(incl, JsonMethod.CREATOR) ? ann.creatorVisibility() : Visibility.NONE; curr = curr.withCreatorVisibility(v); v = hasMethod(incl, JsonMethod.FIELD) ? ann.fieldVisibility() : Visibility.NONE; curr = curr.withFieldVisibility(v); return curr; }
public Std with(JsonAutoDetect ann) { if (ann == null) return this; Std curr = this; JsonMethod[] incl = ann.value(); Visibility v; v = hasMethod(incl, JsonMethod.GETTER) ? ann.getterVisibility() : Visibility.NONE; curr = curr.withGetterVisibility(v); v = hasMethod(incl, JsonMethod.IS_GETTER) ? ann.isGetterVisibility() : Visibility.NONE; curr = curr.withIsGetterVisibility(v); v = hasMethod(incl, JsonMethod.SETTER) ? ann.setterVisibility() : Visibility.NONE; curr = curr.withSetterVisibility(v); v = hasMethod(incl, JsonMethod.CREATOR) ? ann.creatorVisibility() : Visibility.NONE; curr = curr.withCreatorVisibility(v); v = hasMethod(incl, JsonMethod.FIELD) ? ann.fieldVisibility() : Visibility.NONE; curr = curr.withFieldVisibility(v); return curr; }
@Override public Std with(JsonAutoDetect ann) { if (ann == null) return this; Std curr = this; JsonMethod[] incl = ann.value(); Visibility v; v = hasMethod(incl, JsonMethod.GETTER) ? ann.getterVisibility() : Visibility.NONE; curr = curr.withGetterVisibility(v); v = hasMethod(incl, JsonMethod.IS_GETTER) ? ann.isGetterVisibility() : Visibility.NONE; curr = curr.withIsGetterVisibility(v); v = hasMethod(incl, JsonMethod.SETTER) ? ann.setterVisibility() : Visibility.NONE; curr = curr.withSetterVisibility(v); v = hasMethod(incl, JsonMethod.CREATOR) ? ann.creatorVisibility() : Visibility.NONE; curr = curr.withCreatorVisibility(v); v = hasMethod(incl, JsonMethod.FIELD) ? ann.fieldVisibility() : Visibility.NONE; curr = curr.withFieldVisibility(v); return curr; }
/** * Constructor used for building instance that has minumum visibility * levels as indicated by given annotation instance * * @param ann Annotations to use for determining minimum visibility levels */ public Std(JsonAutoDetect ann) { JsonMethod[] incl = ann.value(); // let's combine checks for enabled/disabled, with minimimum level checks: _getterMinLevel = hasMethod(incl, JsonMethod.GETTER) ? ann.getterVisibility() : Visibility.NONE; _isGetterMinLevel = hasMethod(incl, JsonMethod.IS_GETTER) ? ann.isGetterVisibility() : Visibility.NONE; _setterMinLevel = hasMethod(incl, JsonMethod.SETTER) ? ann.setterVisibility() : Visibility.NONE; _creatorMinLevel = hasMethod(incl, JsonMethod.CREATOR) ? ann.creatorVisibility() : Visibility.NONE; _fieldMinLevel = hasMethod(incl, JsonMethod.FIELD) ? ann.fieldVisibility() : Visibility.NONE; }
/** * Constructor used for building instance that has minumum visibility * levels as indicated by given annotation instance * * @param ann Annotations to use for determining minimum visibility levels */ public Std(JsonAutoDetect ann) { JsonMethod[] incl = ann.value(); // let's combine checks for enabled/disabled, with minimimum level checks: _getterMinLevel = hasMethod(incl, JsonMethod.GETTER) ? ann.getterVisibility() : Visibility.NONE; _isGetterMinLevel = hasMethod(incl, JsonMethod.IS_GETTER) ? ann.isGetterVisibility() : Visibility.NONE; _setterMinLevel = hasMethod(incl, JsonMethod.SETTER) ? ann.setterVisibility() : Visibility.NONE; _creatorMinLevel = hasMethod(incl, JsonMethod.CREATOR) ? ann.creatorVisibility() : Visibility.NONE; _fieldMinLevel = hasMethod(incl, JsonMethod.FIELD) ? ann.fieldVisibility() : Visibility.NONE; }
/** * Constructor used for building instance that has minumum visibility * levels as indicated by given annotation instance * * @param ann Annotations to use for determining minimum visibility levels */ public Std(JsonAutoDetect ann) { JsonMethod[] incl = ann.value(); // let's combine checks for enabled/disabled, with minimimum level checks: _getterMinLevel = hasMethod(incl, JsonMethod.GETTER) ? ann.getterVisibility() : Visibility.NONE; _isGetterMinLevel = hasMethod(incl, JsonMethod.IS_GETTER) ? ann.isGetterVisibility() : Visibility.NONE; _setterMinLevel = hasMethod(incl, JsonMethod.SETTER) ? ann.setterVisibility() : Visibility.NONE; _creatorMinLevel = hasMethod(incl, JsonMethod.CREATOR) ? ann.creatorVisibility() : Visibility.NONE; _fieldMinLevel = hasMethod(incl, JsonMethod.FIELD) ? ann.fieldVisibility() : Visibility.NONE; }
public boolean isGetterVisible(AnnotatedMethod m) { return isGetterVisible(m.getAnnotated()); }
public boolean isFieldVisible(AnnotatedField f) { return isFieldVisible(f.getAnnotated()); }
public boolean isCreatorVisible(AnnotatedMember m) { return isCreatorVisible(m.getMember()); }
@Override public boolean isFieldVisible(AnnotatedField f) { return isFieldVisible(f.getAnnotated()); }
@Override public boolean isCreatorVisible(AnnotatedMember m) { return isCreatorVisible(m.getMember()); }
@Override public boolean isGetterVisible(AnnotatedMethod m) { return isGetterVisible(m.getAnnotated()); }