Assertions (Apache Ant API)
Date: 2017-02-02

org.apache.tools.ant.types

## Class Assertions

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.types.DataType
    - - org.apache.tools.ant.types.Assertions

- All Implemented Interfaces:
    java.lang.Cloneable

      public class Assertions
      extends DataType
      implements java.lang.Cloneable

  The assertion datatype. This type describes assertion settings for the <java> task and others. One can set the system assertions, and enable/disable those in packages and classes. Assertions can only be enabled or disabled when forking Java. Example: set system assertions and all org.apache packages except for ant, and the class org.apache.tools.ant.Main.

       <assertions enableSystemAssertions="true" >
         <enable package="org.apache" />
         <disable package="org.apache.ant" />
         <enable class="org.apache.tools.ant.Main"/>
       </assertions>

  Disable system assertions; enable those in the anonymous package

       <assertions enableSystemAssertions="false" >
         <enable package="..." />
       </assertions>

  enable assertions in a class called Test

       <assertions >
         <enable class="Test" />
       </assertions>

  This type is a datatype, so you can declare assertions and use them later

       <assertions id="project.assertions" >
         <enable project="org.apache.test" />
       </assertions>

       <assertions refid="project.assertions" />

  Since:
    Ant 1.6

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `Assertions.BaseAssertion` base class for our assertion elements.
    `static class` | `Assertions.DisabledAssertion` A disabled assertion disables things
    `static class` | `Assertions.EnabledAssertion` an enabled assertion enables things

  - ### Field Summary

    - ### Fields inherited from class org.apache.tools.ant.types.DataType

      `checked, ref`

    - ### Fields inherited from class org.apache.tools.ant.ProjectComponent

      `description, location, project`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Assertions()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addDisable(Assertions.DisabledAssertion assertion)` disable assertions
    `void` | `addEnable(Assertions.EnabledAssertion assertion)` enable assertions
    `void` | `applyAssertions(CommandlineJava command)` apply all the assertions to the command.
    `void` | `applyAssertions(java.util.List<java.lang.String> commandList)` add the assertions to a list in a format suitable for adding to a command line
    `void` | `applyAssertions(java.util.ListIterator<java.lang.String> commandIterator)` add the assertions to a list in a format suitable for adding to a command line
    `java.lang.Object` | `clone()` clone the objects.
    `void` | `setEnableSystemAssertions(java.lang.Boolean enableSystemAssertions)` enable or disable system assertions.
    `void` | `setRefid(Reference ref)` Set the value of the refid attribute.
    `int` | `size()` how many assertions are made...will resolve references before returning

    - ### Methods inherited from class org.apache.tools.ant.types.DataType

      `checkAttributesAllowed, checkChildrenAllowed, circularReference, dieOnCircularReference, dieOnCircularReference, dieOnCircularReference, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getDataTypeName, getRefid, invokeCircularReferenceCheck, isChecked, isReference, noChildrenAllowed, pushAndInvokeCircularReferenceCheck, setChecked, tooManyAttributes, toString`

    - ### Methods inherited from class org.apache.tools.ant.ProjectComponent

      `getDescription, getLocation, getProject, log, log, setDescription, setLocation, setProject`

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

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

- - ### Constructor Detail

    - #### Assertions

          public Assertions()

  - ### Method Detail

    - #### addEnable

          public void addEnable(Assertions.EnabledAssertion assertion)

      enable assertions
      Parameters:
        `assertion` - an enable assertion nested element

    - #### addDisable

          public void addDisable(Assertions.DisabledAssertion assertion)

      disable assertions
      Parameters:
        `assertion` - a disable assertion nested element

    - #### setEnableSystemAssertions

          public void setEnableSystemAssertions(java.lang.Boolean enableSystemAssertions)

      enable or disable system assertions. Default is not set (neither -enablesystemassersions or -disablesytemassertions are used on the command line).
      Parameters:
        `enableSystemAssertions` - if true enable system assertions

    - #### setRefid

          public void setRefid(Reference ref)

      Set the value of the refid attribute.

      Subclasses may need to check whether any other attributes have been set as well or child elements have been created and thus override this method. if they do the must call `super.setRefid`.

      Overrides:
        `setRefid` in class `DataType`
      Parameters:
        `ref` - the reference to use

    - #### size

          public int size()

      how many assertions are made...will resolve references before returning
      Returns:
        total # of commands to make

    - #### applyAssertions

          public void applyAssertions(java.util.List<java.lang.String> commandList)

      add the assertions to a list in a format suitable for adding to a command line
      Parameters:
        `commandList` - the command line to format

    - #### applyAssertions

          public void applyAssertions(CommandlineJava command)

      apply all the assertions to the command.
      Parameters:
        `command` - the command line to format

    - #### applyAssertions

          public void applyAssertions(java.util.ListIterator<java.lang.String> commandIterator)

      add the assertions to a list in a format suitable for adding to a command line
      Parameters:
        `commandIterator` - list of commands

    - #### clone

          public java.lang.Object clone()
                                 throws java.lang.CloneNotSupportedException

      clone the objects. This is not a full depth clone; the list of assertions is cloned, but it does not clone the underlying assertions.
      Overrides:
        `clone` in class `DataType`
      Returns:
        a cli
      Throws:
        `java.lang.CloneNotSupportedException` - if the super class does not support cloning