Assertions (Apache Ant API)
Description: declaration: package: org.apache.tools.ant.types, class: Assertions

# 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:
  `Cloneable`

public class Assertions extends DataType implements 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
  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 DataType

  `checked, ref`
  Modifier and Type
  Field
  Description
  `protected boolean`
  `checked`
  Deprecated.
  since 1.7.
  `protected Reference`
  `ref`
  Deprecated.
  since 1.7.

  ### Fields inherited from class ProjectComponent

  `description, location, project`
  Modifier and Type
  Field
  Description
  `protected String`
  `description`
  Deprecated.
  since 1.6.x.
  `protected Location`
  `location`
  Deprecated.
  since 1.6.x.
  `protected Project`
  `project`
  Deprecated.
  since 1.6.x.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Assertions()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addDisable(Assertions.DisabledAssertion assertion)`
  disable assertions
  `void`
  `addEnable(Assertions.EnabledAssertion assertion)`
  enable assertions
  `void`
  `applyAssertions(List<String> commandList)`
  add the assertions to a list in a format suitable for adding to a command line
  `void`
  `applyAssertions(ListIterator<String> commandIterator)`
  add the assertions to a list in a format suitable for adding to a command line
  `void`
  `applyAssertions(CommandlineJava command)`
  apply all the assertions to the command.
  `Object`
  `clone()`
  clone the objects.
  `void`
  `setEnableSystemAssertions(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 DataType

  `checkAttributesAllowed, checkChildrenAllowed, circularReference, dieOnCircularReference, dieOnCircularReference, dieOnCircularReference, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getDataTypeName, getRefid, invokeCircularReferenceCheck, isChecked, isReference, noChildrenAllowed, pushAndInvokeCircularReferenceCheck, setChecked, tooManyAttributes, toString`
  Modifier and Type
  Method
  Description
  `protected void`
  `checkAttributesAllowed()`
  check that it is ok to set attributes, i.e that no reference is defined
  `protected void`
  `checkChildrenAllowed()`
  check that it is ok to add children, i.e that no reference is defined
  `protected BuildException`
  `circularReference()`
  Creates an exception that indicates the user has generated a loop of data types referencing each other.
  `protected void`
  `dieOnCircularReference()`
  Convenience method.
  `protected void`
  `dieOnCircularReference(Stack<Object> stack, Project project)`
  Check to see whether any DataType we hold references to is included in the Stack (which holds all DataType instances that directly or indirectly reference this instance, including this instance itself).
  `protected void`
  `dieOnCircularReference(Project p)`
  Convenience method.
  `protected <T> T`
  `getCheckedRef()`
  Deprecated.
  use getCheckedRef(Class)
  `protected <T> T`
  `getCheckedRef(Class<T> requiredClass)`
  Performs the check for circular references and returns the referenced object.
  `protected <T> T`
  `getCheckedRef(Class<T> requiredClass, String dataTypeName)`
  Performs the check for circular references and returns the referenced object.
  `protected <T> T`
  `getCheckedRef(Class<T> requiredClass, String dataTypeName, Project project)`
  Performs the check for circular references and returns the referenced object.
  `protected <T> T`
  `getCheckedRef(Project p)`
  Deprecated.
  use getCheckedRef(Class)
  `protected String`
  `getDataTypeName()`
  Gets as descriptive as possible a name used for this datatype instance.
  `Reference`
  `getRefid()`
  get the reference set on this object
  `static void`
  `invokeCircularReferenceCheck(DataType dt, Stack<Object> stk, Project p)`
  Allow DataTypes outside org.apache.tools.ant.types to indirectly call dieOnCircularReference on nested DataTypes.
  `protected boolean`
  `isChecked()`
  The flag that is used to indicate that circular references have been checked.
  `boolean`
  `isReference()`
  Has the refid attribute of this element been set?
  `protected BuildException`
  `noChildrenAllowed()`
  Creates an exception that indicates that this XML element must not have child elements if the refid attribute is set.
  `static void`
  `pushAndInvokeCircularReferenceCheck(DataType dt, Stack<Object> stk, Project p)`
  Allow DataTypes outside org.apache.tools.ant.types to indirectly call dieOnCircularReference on nested DataTypes.
  `protected void`
  `setChecked(boolean checked)`
  Set the flag that is used to indicate that circular references have been checked.
  `protected BuildException`
  `tooManyAttributes()`
  Creates an exception that indicates that refid has to be the only attribute if it is set.
  `String`
  `toString()`
  Basic DataType toString().

  ### Methods inherited from class ProjectComponent

  `getDescription, getLocation, getProject, log, log, setDescription, setLocation, setProject`
  Modifier and Type
  Method
  Description
  `String`
  `getDescription()`
  Returns the description of the current action.
  `Location`
  `getLocation()`
  Returns the file/location where this task was defined.
  `Project`
  `getProject()`
  Returns the project to which this component belongs.
  `void`
  `log(String msg)`
  Logs a message with the default (INFO) priority.
  `void`
  `log(String msg, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `setDescription(String desc)`
  Sets a description of the current action.
  `void`
  `setLocation(Location location)`
  Sets the file/location where this task was defined.
  `void`
  `setProject(Project project)`
  Sets the project object of this component.

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### Assertions

    public Assertions()

- ## Method Details

  - ### 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(Boolean enableSystemAssertions)
    enable or disable system assertions. Default is not set (neither -enablesystemassertions 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(List<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(ListIterator<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 Object clone() throws 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:
      `CloneNotSupportedException` - if the super class does not support cloning