Package org.apache.commons.beanutils2

# Class SuppressPropertiesBeanIntrospector

java.lang.Object
org.apache.commons.beanutils2.SuppressPropertiesBeanIntrospector

All Implemented Interfaces:
  `BeanIntrospector`

public class SuppressPropertiesBeanIntrospector extends Object implements BeanIntrospector

A specialized `BeanIntrospector` implementation which suppresses some properties.

An instance of this class is passed a set with the names of the properties it should process. During introspection of a bean class it removes all these properties from the `IntrospectionContext`. So effectively, properties added by a different `BeanIntrospector` are removed again.

Since:
  1.9.2

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final SuppressPropertiesBeanIntrospector`
  `SUPPRESS_CLASS`
  A specialized instance which is configured to suppress the special `class` properties of Java beans.
  `static final SuppressPropertiesBeanIntrospector`
  `SUPPRESS_DECLARING_CLASS`
  A specialized instance which is configured to suppress the special `class` properties of Java beans.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SuppressPropertiesBeanIntrospector(Collection<String> propertiesToSuppress)`
  Creates a new instance of `SuppressPropertiesBeanIntrospector` and sets the names of the properties to be suppressed.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Set<String>`
  `getSuppressedProperties()`
  Returns a (unmodifiable) set with the names of the properties which are suppressed by this `BeanIntrospector`.
  `void`
  `introspect(IntrospectionContext icontext)`
  Performs introspection on a Java class.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### SUPPRESS_CLASS

    public static final SuppressPropertiesBeanIntrospector SUPPRESS_CLASS
    A specialized instance which is configured to suppress the special `class` properties of Java beans. Unintended access to the property `class` (which is common to all Java objects) can be a security risk because it also allows access to the class loader. Adding this instance as `BeanIntrospector` to an instance of `PropertyUtilsBean` suppresses the `class` property; it can then no longer be accessed.

  - ### SUPPRESS_DECLARING_CLASS

    public static final SuppressPropertiesBeanIntrospector SUPPRESS_DECLARING_CLASS
    A specialized instance which is configured to suppress the special `class` properties of Java beans. Unintended access to the call for `declaringClass` (which is common to all Java `enum`) can be a security risk because it also allows access to the class loader. Adding this instance as `BeanIntrospector` to an instance of `PropertyUtilsBean` suppresses the `class` property; it can then no longer be accessed.
    Since:
      2.0.0-M2

- ## Constructor Details

  - ### SuppressPropertiesBeanIntrospector

    public SuppressPropertiesBeanIntrospector(Collection<String> propertiesToSuppress)
    Creates a new instance of `SuppressPropertiesBeanIntrospector` and sets the names of the properties to be suppressed.
    Parameters:
      `propertiesToSuppress` - the names of the properties to be suppressed (must not be null)
    Throws:
      `IllegalArgumentException` - if the collection with property names is null

- ## Method Details

  - ### getSuppressedProperties

    public Set<String> getSuppressedProperties()
    Returns a (unmodifiable) set with the names of the properties which are suppressed by this `BeanIntrospector`.
    Returns:
      a set with the names of the suppressed properties

  - ### introspect

    public void introspect(IntrospectionContext icontext) throws IntrospectionException
    Performs introspection on a Java class. The current class to be inspected can be queried from the passed in `IntrospectionContext` object. A typical implementation has to obtain this class, determine its properties according to the rules it implements, and add them to the passed in context object. This implementation removes all properties from the given context it is configured for.
    Specified by:
      `introspect` in interface `BeanIntrospector`
    Parameters:
      `icontext` - the context object for interaction with the initiator of the introspection request
    Throws:
      `IntrospectionException` - if an error occurs during introspection