Class Excluder

java.lang.Object
com.google.gson.internal.Excluder
All Implemented Interfaces:
TypeAdapterFactory, Cloneable

public final class Excluder extends Object implements TypeAdapterFactory, Cloneable
This class selects which fields and types to omit. It is configurable, supporting version attributes Since and Until, modifiers, synthetic fields, anonymous and local classes, inner classes, and fields with the Expose annotation.

This class is a type adapter factory; types that are excluded will be adapted to null. It may delegate to another type adapter if only one direction is excluded.

  • Field Details

    • IGNORE_VERSIONS

      private static final double IGNORE_VERSIONS
      See Also:
    • DEFAULT

      public static final Excluder DEFAULT
    • version

      private double version
    • modifiers

      private int modifiers
    • serializeInnerClasses

      private boolean serializeInnerClasses
    • requireExpose

      private boolean requireExpose
    • serializationStrategies

      private List<ExclusionStrategy> serializationStrategies
    • deserializationStrategies

      private List<ExclusionStrategy> deserializationStrategies
  • Constructor Details

    • Excluder

      public Excluder()
  • Method Details

    • clone

      protected Excluder clone()
      Overrides:
      clone in class Object
    • withVersion

      public Excluder withVersion(double ignoreVersionsAfter)
    • withModifiers

      public Excluder withModifiers(int... modifiers)
    • disableInnerClassSerialization

      public Excluder disableInnerClassSerialization()
    • excludeFieldsWithoutExposeAnnotation

      public Excluder excludeFieldsWithoutExposeAnnotation()
    • withExclusionStrategy

      public Excluder withExclusionStrategy(ExclusionStrategy exclusionStrategy, boolean serialization, boolean deserialization)
    • create

      public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type)
      Description copied from interface: TypeAdapterFactory
      Returns a type adapter for type, or null if this factory doesn't support type.
      Specified by:
      create in interface TypeAdapterFactory
    • excludeField

      public boolean excludeField(Field field, boolean serialize)
    • excludeClassChecks

      private boolean excludeClassChecks(Class<?> clazz)
    • excludeClass

      public boolean excludeClass(Class<?> clazz, boolean serialize)
    • excludeClassInStrategy

      private boolean excludeClassInStrategy(Class<?> clazz, boolean serialize)
    • isAnonymousOrNonStaticLocal

      private boolean isAnonymousOrNonStaticLocal(Class<?> clazz)
    • isInnerClass

      private boolean isInnerClass(Class<?> clazz)
    • isStatic

      private boolean isStatic(Class<?> clazz)
    • isValidVersion

      private boolean isValidVersion(Since since, Until until)
    • isValidSince

      private boolean isValidSince(Since annotation)
    • isValidUntil

      private boolean isValidUntil(Until annotation)