/** * After the modifications are applied, it may be useful for manipulators * to provide caller with a structured, computer-readable output or summary of the changes. * This is done in the form of a JSON document stored in the root target * directory. * The output data are generated from the fields of the state objects, * which must be actively marked by {@link JsonProperty} annotation * to be processed. * The result is a map from short state class names * to the result of the state serialization. * Keys with empty values are excluded. * * @param session the container session for manipulation. * @throws ManipulationException if an error occurs. */ private String collectResults( final ManipulationSession session ) throws ManipulationException, JsonProcessingException { final ObjectMapper MAPPER = new ObjectMapper(); VisibilityChecker<?> vc = MAPPER.getSerializationConfig() .getDefaultVisibilityChecker() .withCreatorVisibility( JsonAutoDetect.Visibility.NONE ) .withFieldVisibility( JsonAutoDetect.Visibility.NONE ) .withGetterVisibility( JsonAutoDetect.Visibility.NONE ) .withIsGetterVisibility( JsonAutoDetect.Visibility.NONE ) .withSetterVisibility( JsonAutoDetect.Visibility.NONE ); MAPPER.setVisibility( vc ); MAPPER.configure( SerializationFeature.FAIL_ON_EMPTY_BEANS, false ); ObjectNode root = MAPPER.createObjectNode(); for ( final Map.Entry<Class<?>, State> stateEntry : session.getStatesCopy() ) { JsonNode node = MAPPER.convertValue( stateEntry.getValue(), JsonNode.class ); if ( node.isObject() && node.size() != 0 ) { root.set( stateEntry.getKey().getSimpleName(), node ); } } return MAPPER.writeValueAsString( root ); }
public BaseSettings(ClassIntrospector ci, AnnotationIntrospector ai, VisibilityChecker<?> vc, PropertyNamingStrategy pns, TypeFactory tf, TypeResolverBuilder<?> typer, DateFormat dateFormat, HandlerInstantiator hi, Locale locale, TimeZone tz, Base64Variant defaultBase64) { _classIntrospector = ci; _annotationIntrospector = ai; _visibilityChecker = vc; _propertyNamingStrategy = pns; _typeFactory = tf; _typeResolverBuilder = typer; _dateFormat = dateFormat; _handlerInstantiator = hi; _locale = locale; _timeZone = tz; _defaultBase64 = defaultBase64; }
@Override public VisibilityChecker<?> getDefaultVisibilityChecker() { VisibilityChecker<?> vchecker = super.getDefaultVisibilityChecker(); if (!isEnabled(MapperFeature.AUTO_DETECT_GETTERS)) { vchecker = vchecker.withGetterVisibility(Visibility.NONE); } // then global overrides (disabling) if (!isEnabled(MapperFeature.AUTO_DETECT_IS_GETTERS)) { vchecker = vchecker.withIsGetterVisibility(Visibility.NONE); } if (!isEnabled(MapperFeature.AUTO_DETECT_FIELDS)) { vchecker = vchecker.withFieldVisibility(Visibility.NONE); } return vchecker; }
private static MobileScreen getPage(File file) throws Throwable { MobileScreen mobileScreen; ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); try { mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); mapper.setVisibilityChecker(VisibilityChecker.Std.defaultInstance().withFieldVisibility(JsonAutoDetect.Visibility.ANY)); mobileScreen = mapper.readValue(file, MobileScreen.class); } catch (Exception e) { e.printStackTrace(); throw e.getCause(); } return mobileScreen; }
@Bean public Jongo jongo() { DB db = mongoClient.getDB(mongoProperties.getMongoClientDatabase()); Mapper mapper = new JacksonMapper.Builder() .registerModule(new Jdk8Module()) .registerModule(new GuavaModule()) .setVisibilityChecker(VisibilityChecker.Std.defaultInstance()) .build(); return new Jongo(db, mapper); }
@Override public VisibilityChecker<?> findAutoDetectVisibility(AnnotatedClass annotatedClass, VisibilityChecker<?> checker) { return checker.withFieldVisibility(Visibility.PUBLIC_ONLY) .withSetterVisibility(Visibility.NONE) .withGetterVisibility(Visibility.NONE) .withIsGetterVisibility(Visibility.NONE); }
public BaseSettings(ClassIntrospector paramClassIntrospector, AnnotationIntrospector paramAnnotationIntrospector, VisibilityChecker<?> paramVisibilityChecker, PropertyNamingStrategy paramPropertyNamingStrategy, TypeFactory paramTypeFactory, TypeResolverBuilder<?> paramTypeResolverBuilder, DateFormat paramDateFormat, HandlerInstantiator paramHandlerInstantiator, Locale paramLocale, TimeZone paramTimeZone, Base64Variant paramBase64Variant) { this._classIntrospector = paramClassIntrospector; this._annotationIntrospector = paramAnnotationIntrospector; this._visibilityChecker = paramVisibilityChecker; this._propertyNamingStrategy = paramPropertyNamingStrategy; this._typeFactory = paramTypeFactory; this._typeResolverBuilder = paramTypeResolverBuilder; this._dateFormat = paramDateFormat; this._handlerInstantiator = paramHandlerInstantiator; this._locale = paramLocale; this._timeZone = paramTimeZone; this._defaultBase64 = paramBase64Variant; }
public final BaseSettings with(TimeZone paramTimeZone) { if (paramTimeZone == null) throw new IllegalArgumentException(); DateFormat localDateFormat1 = this._dateFormat; Object localObject; if ((localDateFormat1 instanceof StdDateFormat)) { localObject = ((StdDateFormat)localDateFormat1).withTimeZone(paramTimeZone); } else { DateFormat localDateFormat2 = (DateFormat)localDateFormat1.clone(); localObject = localDateFormat2; localDateFormat2.setTimeZone(paramTimeZone); } ClassIntrospector localClassIntrospector = this._classIntrospector; AnnotationIntrospector localAnnotationIntrospector = this._annotationIntrospector; VisibilityChecker localVisibilityChecker = this._visibilityChecker; PropertyNamingStrategy localPropertyNamingStrategy = this._propertyNamingStrategy; TypeFactory localTypeFactory = this._typeFactory; TypeResolverBuilder localTypeResolverBuilder = this._typeResolverBuilder; HandlerInstantiator localHandlerInstantiator = this._handlerInstantiator; Locale localLocale = this._locale; Base64Variant localBase64Variant = this._defaultBase64; return new BaseSettings(localClassIntrospector, localAnnotationIntrospector, localVisibilityChecker, localPropertyNamingStrategy, localTypeFactory, localTypeResolverBuilder, (DateFormat)localObject, localHandlerInstantiator, localLocale, paramTimeZone, localBase64Variant); }
public final VisibilityChecker<?> getDefaultVisibilityChecker() { VisibilityChecker localVisibilityChecker = super.getDefaultVisibilityChecker(); if (!isEnabled(MapperFeature.AUTO_DETECT_GETTERS)) localVisibilityChecker = localVisibilityChecker.withGetterVisibility(JsonAutoDetect.Visibility.NONE); if (!isEnabled(MapperFeature.AUTO_DETECT_IS_GETTERS)) localVisibilityChecker = localVisibilityChecker.withIsGetterVisibility(JsonAutoDetect.Visibility.NONE); if (!isEnabled(MapperFeature.AUTO_DETECT_FIELDS)) localVisibilityChecker = localVisibilityChecker.withFieldVisibility(JsonAutoDetect.Visibility.NONE); return localVisibilityChecker; }
protected ValueInstantiator _constructDefaultValueInstantiator(DeserializationContext paramDeserializationContext, BeanDescription paramBeanDescription) { CreatorCollector localCreatorCollector = new CreatorCollector(paramBeanDescription, paramDeserializationContext.canOverrideAccessModifiers()); AnnotationIntrospector localAnnotationIntrospector = paramDeserializationContext.getAnnotationIntrospector(); DeserializationConfig localDeserializationConfig = paramDeserializationContext.getConfig(); VisibilityChecker localVisibilityChecker1 = localDeserializationConfig.getDefaultVisibilityChecker(); VisibilityChecker localVisibilityChecker2 = localAnnotationIntrospector.findAutoDetectVisibility(paramBeanDescription.getClassInfo(), localVisibilityChecker1); _addDeserializerFactoryMethods(paramDeserializationContext, paramBeanDescription, localVisibilityChecker2, localAnnotationIntrospector, localCreatorCollector); if (paramBeanDescription.getType().isConcrete()) _addDeserializerConstructors(paramDeserializationContext, paramBeanDescription, localVisibilityChecker2, localAnnotationIntrospector, localCreatorCollector); return localCreatorCollector.constructValueInstantiator(localDeserializationConfig); }
protected boolean _handleSingleArgumentFactory(DeserializationConfig paramDeserializationConfig, BeanDescription paramBeanDescription, VisibilityChecker<?> paramVisibilityChecker, AnnotationIntrospector paramAnnotationIntrospector, CreatorCollector paramCreatorCollector, AnnotatedMethod paramAnnotatedMethod, boolean paramBoolean) { Class localClass = paramAnnotatedMethod.getRawParameterType(0); if (localClass == String.class) { if ((paramBoolean) || (paramVisibilityChecker.isCreatorVisible(paramAnnotatedMethod))) paramCreatorCollector.addStringCreator(paramAnnotatedMethod); return true; } if ((localClass == Integer.TYPE) || (localClass == Integer.class)) { if ((paramBoolean) || (paramVisibilityChecker.isCreatorVisible(paramAnnotatedMethod))) paramCreatorCollector.addIntCreator(paramAnnotatedMethod); return true; } if ((localClass == Long.TYPE) || (localClass == Long.class)) { if ((paramBoolean) || (paramVisibilityChecker.isCreatorVisible(paramAnnotatedMethod))) paramCreatorCollector.addLongCreator(paramAnnotatedMethod); return true; } if ((localClass == Double.TYPE) || (localClass == Double.class)) { if ((paramBoolean) || (paramVisibilityChecker.isCreatorVisible(paramAnnotatedMethod))) paramCreatorCollector.addDoubleCreator(paramAnnotatedMethod); return true; } if ((localClass == Boolean.TYPE) || (localClass == Boolean.class)) { if ((paramBoolean) || (paramVisibilityChecker.isCreatorVisible(paramAnnotatedMethod))) paramCreatorCollector.addBooleanCreator(paramAnnotatedMethod); return true; } if (paramAnnotationIntrospector.hasCreatorAnnotation(paramAnnotatedMethod)) { paramCreatorCollector.addDelegatingCreator(paramAnnotatedMethod, null); return true; } return false; }
public final VisibilityChecker<?> getDefaultVisibilityChecker() { VisibilityChecker localVisibilityChecker = super.getDefaultVisibilityChecker(); if (!isEnabled(MapperFeature.AUTO_DETECT_SETTERS)) localVisibilityChecker = localVisibilityChecker.withSetterVisibility(JsonAutoDetect.Visibility.NONE); if (!isEnabled(MapperFeature.AUTO_DETECT_CREATORS)) localVisibilityChecker = localVisibilityChecker.withCreatorVisibility(JsonAutoDetect.Visibility.NONE); if (!isEnabled(MapperFeature.AUTO_DETECT_FIELDS)) localVisibilityChecker = localVisibilityChecker.withFieldVisibility(JsonAutoDetect.Visibility.NONE); return localVisibilityChecker; }
public BaseSettings withVisibilityChecker(VisibilityChecker<?> vc) { if (_visibilityChecker == vc) { return this; } return new BaseSettings(_classIntrospector, _annotationIntrospector, vc, _propertyNamingStrategy, _typeFactory, _typeResolverBuilder, _dateFormat, _handlerInstantiator, _locale, _timeZone, _defaultBase64); }
@Override public VisibilityChecker<?> getDefaultVisibilityChecker() { VisibilityChecker<?> vchecker = super.getDefaultVisibilityChecker(); if (!isEnabled(MapperFeature.AUTO_DETECT_SETTERS)) { vchecker = vchecker.withSetterVisibility(Visibility.NONE); } if (!isEnabled(MapperFeature.AUTO_DETECT_CREATORS)) { vchecker = vchecker.withCreatorVisibility(Visibility.NONE); } if (!isEnabled(MapperFeature.AUTO_DETECT_FIELDS)) { vchecker = vchecker.withFieldVisibility(Visibility.NONE); } return vchecker; }
private static VisibilityChecker<?> fieldsOnlyVisibilityChecker(ObjectMapper mapper) { return mapper.getSerializationConfig().getDefaultVisibilityChecker() .withFieldVisibility(JsonAutoDetect.Visibility.ANY) .withGetterVisibility(JsonAutoDetect.Visibility.NONE) .withIsGetterVisibility(JsonAutoDetect.Visibility.NONE); }
@Override public VisibilityChecker<?> findAutoDetectVisibility( AnnotatedClass ac, VisibilityChecker<?> checker) { return checker.withSetterVisibility(Visibility.PUBLIC_ONLY); }
public final VisibilityChecker<?> getVisibilityChecker() { return this._visibilityChecker; }
public final BaseSettings withVisibilityChecker(VisibilityChecker<?> paramVisibilityChecker) { if (this._visibilityChecker == paramVisibilityChecker) return this; return new BaseSettings(this._classIntrospector, this._annotationIntrospector, paramVisibilityChecker, this._propertyNamingStrategy, this._typeFactory, this._typeResolverBuilder, this._dateFormat, this._handlerInstantiator, this._locale, this._timeZone, this._defaultBase64); }
public VisibilityChecker<?> getDefaultVisibilityChecker() { return this._base.getVisibilityChecker(); }
public final SerializationConfig with(VisibilityChecker<?> paramVisibilityChecker) { return _withBase(this._base.withVisibilityChecker(paramVisibilityChecker)); }
protected void _addDeserializerFactoryMethods(DeserializationContext paramDeserializationContext, BeanDescription paramBeanDescription, VisibilityChecker<?> paramVisibilityChecker, AnnotationIntrospector paramAnnotationIntrospector, CreatorCollector paramCreatorCollector) { DeserializationConfig localDeserializationConfig = paramDeserializationContext.getConfig(); Iterator localIterator = paramBeanDescription.getFactoryMethods().iterator(); while (localIterator.hasNext()) { AnnotatedMethod localAnnotatedMethod = (AnnotatedMethod)localIterator.next(); boolean bool = paramAnnotationIntrospector.hasCreatorAnnotation(localAnnotatedMethod); int i = localAnnotatedMethod.getParameterCount(); if (i == 0) { if (bool) paramCreatorCollector.setDefaultCreator(localAnnotatedMethod); } else if (i == 1) { AnnotatedParameter localAnnotatedParameter2 = localAnnotatedMethod.getParameter(0); PropertyName localPropertyName3; if (localAnnotatedParameter2 == null) localPropertyName3 = null; else localPropertyName3 = paramAnnotationIntrospector.findNameForDeserialization(localAnnotatedParameter2); PropertyName localPropertyName4 = localPropertyName3; String str2; if (localPropertyName3 == null) str2 = null; else str2 = localPropertyName4.getSimpleName(); if ((paramAnnotationIntrospector.findInjectableValueId(localAnnotatedParameter2) == null) && ((str2 == null) || (str2.length() == 0))) _handleSingleArgumentFactory(localDeserializationConfig, paramBeanDescription, paramVisibilityChecker, paramAnnotationIntrospector, paramCreatorCollector, localAnnotatedMethod, bool); else; } else if (paramAnnotationIntrospector.hasCreatorAnnotation(localAnnotatedMethod)) { Object localObject1 = null; CreatorProperty[] arrayOfCreatorProperty = new CreatorProperty[i]; int j = 0; int k = 0; for (int m = 0; m < i; m++) { AnnotatedParameter localAnnotatedParameter1 = localAnnotatedMethod.getParameter(m); PropertyName localPropertyName1; if (localAnnotatedParameter1 == null) localPropertyName1 = null; else localPropertyName1 = paramAnnotationIntrospector.findNameForDeserialization(localAnnotatedParameter1); PropertyName localPropertyName2 = localPropertyName1; String str1; if (localPropertyName1 == null) str1 = null; else str1 = localPropertyName2.getSimpleName(); Object localObject2 = paramAnnotationIntrospector.findInjectableValueId(localAnnotatedParameter1); if ((str1 != null) && (str1.length() > 0)) { j++; arrayOfCreatorProperty[m] = constructCreatorProperty(paramDeserializationContext, paramBeanDescription, str1, m, localAnnotatedParameter1, localObject2); } else if (localObject2 != null) { k++; arrayOfCreatorProperty[m] = constructCreatorProperty(paramDeserializationContext, paramBeanDescription, str1, m, localAnnotatedParameter1, localObject2); } else if (localObject1 == null) { localObject1 = localAnnotatedParameter1; } } if ((bool) || (j > 0) || (k > 0)) if (j + k == i) paramCreatorCollector.addPropertyCreator(localAnnotatedMethod, arrayOfCreatorProperty); else if ((j == 0) && (k + 1 == i)) paramCreatorCollector.addDelegatingCreator(localAnnotatedMethod, arrayOfCreatorProperty); else throw new IllegalArgumentException("Argument #" + localObject1.getIndex() + " of factory method " + localAnnotatedMethod + " has no property name annotation; must have name when multiple-paramater constructor annotated as Creator"); } } }
protected boolean _handleSingleArgumentConstructor(DeserializationContext paramDeserializationContext, BeanDescription paramBeanDescription, VisibilityChecker<?> paramVisibilityChecker, AnnotationIntrospector paramAnnotationIntrospector, CreatorCollector paramCreatorCollector, AnnotatedConstructor paramAnnotatedConstructor, boolean paramBoolean1, boolean paramBoolean2, String paramString) { AnnotatedParameter localAnnotatedParameter = paramAnnotatedConstructor.getParameter(0); if (paramString == null) { PropertyName localPropertyName1; if (localAnnotatedParameter == null) localPropertyName1 = null; else localPropertyName1 = paramAnnotationIntrospector.findNameForDeserialization(localAnnotatedParameter); PropertyName localPropertyName2 = localPropertyName1; if (localPropertyName1 == null) paramString = null; else paramString = localPropertyName2.getSimpleName(); } Object localObject = paramAnnotationIntrospector.findInjectableValueId(localAnnotatedParameter); if ((localObject != null) || ((paramString != null) && (paramString.length() > 0))) { CreatorProperty[] arrayOfCreatorProperty = new CreatorProperty[1]; arrayOfCreatorProperty[0] = constructCreatorProperty(paramDeserializationContext, paramBeanDescription, paramString, 0, localAnnotatedParameter, localObject); paramCreatorCollector.addPropertyCreator(paramAnnotatedConstructor, arrayOfCreatorProperty); return true; } Class localClass = paramAnnotatedConstructor.getRawParameterType(0); if (localClass == String.class) { if ((paramBoolean1) || (paramBoolean2)) paramCreatorCollector.addStringCreator(paramAnnotatedConstructor); return true; } if ((localClass == Integer.TYPE) || (localClass == Integer.class)) { if ((paramBoolean1) || (paramBoolean2)) paramCreatorCollector.addIntCreator(paramAnnotatedConstructor); return true; } if ((localClass == Long.TYPE) || (localClass == Long.class)) { if ((paramBoolean1) || (paramBoolean2)) paramCreatorCollector.addLongCreator(paramAnnotatedConstructor); return true; } if ((localClass == Double.TYPE) || (localClass == Double.class)) { if ((paramBoolean1) || (paramBoolean2)) paramCreatorCollector.addDoubleCreator(paramAnnotatedConstructor); return true; } if (paramBoolean1) { paramCreatorCollector.addDelegatingCreator(paramAnnotatedConstructor, null); return true; } return false; }
public final DeserializationConfig with(VisibilityChecker<?> paramVisibilityChecker) { return _withBase(this._base.withVisibilityChecker(paramVisibilityChecker)); }
public VisibilityChecker<?> findAutoDetectVisibility(AnnotatedClass paramAnnotatedClass, VisibilityChecker<?> paramVisibilityChecker) { return paramVisibilityChecker; }
public VisibilityChecker<?> getVisibilityChecker() { return _visibilityChecker; }
@Override public SerializationConfig with(VisibilityChecker<?> vc) { return _withBase(_base.withVisibilityChecker(vc)); }
@Override public DeserializationConfig with(VisibilityChecker<?> vc) { return _withBase(_base.withVisibilityChecker(vc)); }
/** * Accessor for object used for determining whether specific property elements * (method, constructors, fields) can be auto-detected based on * their visibility (access modifiers). Can be changed to allow * different minimum visibility levels for auto-detection. Note * that this is the global handler; individual types (classes) * can further override active checker used (using * {@link JsonAutoDetect} annotation) */ public VisibilityChecker<?> getDefaultVisibilityChecker() { return _base.getVisibilityChecker(); }
/** * Method for constructing and returning a new instance with different * {@link VisibilityChecker} * to use. */ public abstract T with(VisibilityChecker<?> vc);
public abstract T with(VisibilityChecker<?> paramVisibilityChecker);