ClassConstants (Apache Ant API)
Date: 2018-07-10

org.apache.tools.ant.filters

## Class ClassConstants

- java.lang.Object
- - java.io.Reader
  - - java.io.FilterReader
    - - org.apache.tools.ant.filters.BaseFilterReader
      - - org.apache.tools.ant.filters.ClassConstants

- All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, java.lang.Readable, ChainableReader

      public final class ClassConstants
      extends BaseFilterReader
      implements ChainableReader

  Assembles the constants declared in a Java class in `key1=value1(line separator)key2=value2` format.

  Notes:

  1. This filter uses the BCEL external toolkit.
  2. This assembles only those constants that are not created using the syntax `new whatever()`
  3. This assembles constants declared using the basic datatypes and String only.
  4. The access modifiers of the declared constants do not matter.

  Example:

      <classconstants/>

  Or:

      <filterreader
          classname="org.apache.tools.ant.filters.ClassConstants"/>

- - ### Field Summary

    - ### Fields inherited from class java.io.FilterReader

      `in`

    - ### Fields inherited from class java.io.Reader

      `lock`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ClassConstants()` Constructor for "dummy" instances.
    `ClassConstants(java.io.Reader in)` Creates a new filtered reader.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.io.Reader` | `chain(java.io.Reader rdr)` Creates a new ClassConstants using the passed in Reader for instantiation.
    `int` | `read()` Reads and assembles the constants declared in a class file.

    - ### Methods inherited from class org.apache.tools.ant.filters.BaseFilterReader

      `getInitialized, getProject, read, readFully, readLine, setInitialized, setProject, skip`

    - ### Methods inherited from class java.io.FilterReader

      `close, mark, markSupported, ready, reset`

    - ### Methods inherited from class java.io.Reader

      `read, read`

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

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

- - ### Constructor Detail

    - #### ClassConstants

          public ClassConstants()

      Constructor for "dummy" instances.
      See Also:
        `BaseFilterReader.BaseFilterReader()`

    - #### ClassConstants

          public ClassConstants(java.io.Reader in)

      Creates a new filtered reader. The contents of the passed-in reader are expected to be the name of the class from which to produce a list of constants.
      Parameters:
        `in` - A Reader object providing the underlying stream. Must not be `null`.

  - ### Method Detail

    - #### read

          public int read()
                   throws java.io.IOException

      Reads and assembles the constants declared in a class file.
      Overrides:
        `read` in class `java.io.FilterReader`
      Returns:
        the next character in the list of constants, or -1 if the end of the resulting stream has been reached
      Throws:
        `java.io.IOException` - if the underlying stream throws an IOException during reading, or if the constants for the specified class cannot be read (for example due to the class not being found).

    - #### chain

          public java.io.Reader chain(java.io.Reader rdr)

      Creates a new ClassConstants using the passed in Reader for instantiation.
      Specified by:
        `chain` in interface `ChainableReader`
      Parameters:
        `rdr` - A Reader object providing the underlying stream. Must not be `null`.
      Returns:
        a new filter based on this configuration, but filtering the specified reader