/*
 *  Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  See the NOTICE file distributed with
 *  this work for additional information regarding copyright ownership.
 *  The ASF licenses this file to You under the Apache License, Version 2.0
 *  (the "License"); you may not use this file except in compliance with
 *  the License.  You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 */

package org.apache.tools.ant.taskdefs.condition;

import java.util.Collections;
import java.util.Enumeration;
import java.util.List;
import java.util.Vector;

import org.apache.tools.ant.ProjectComponent;
import org.apache.tools.ant.taskdefs.Available;
import org.apache.tools.ant.taskdefs.Checksum;
import org.apache.tools.ant.taskdefs.UpToDate;

Baseclass for the <condition> task as well as several conditions - ensures that the types of conditions inside the task and the "container" conditions are in sync.
Since:Ant 1.4
/** * Baseclass for the &lt;condition&gt; task as well as several * conditions - ensures that the types of conditions inside the task * and the "container" conditions are in sync. * * @since Ant 1.4 */
public abstract class ConditionBase extends ProjectComponent {
name of the component
/** * name of the component */
private String taskName = "condition"; /** * */ private List<Condition> conditions = new Vector<>();
Simple constructor.
/** * Simple constructor. */
protected ConditionBase() { taskName = "component"; }
Constructor that takes the name of the task in the task name.
Params:
  • taskName – the name of the task.
Since:Ant 1.7
/** * Constructor that takes the name of the task in the task name. * @param taskName the name of the task. * @since Ant 1.7 */
protected ConditionBase(String taskName) { this.taskName = taskName; }
Count the conditions.
Returns:the number of conditions in the container
Since:1.1
/** * Count the conditions. * * @return the number of conditions in the container * @since 1.1 */
protected int countConditions() { return conditions.size(); }
Iterate through all conditions.
Returns:an enumeration to use for iteration
Since:1.1
/** * Iterate through all conditions. * * @return an enumeration to use for iteration * @since 1.1 */
protected final Enumeration<Condition> getConditions() { return Collections.enumeration(conditions); }
Sets the name to use in logging messages.
Params:
  • name – The name to use in logging messages. Should not be null.
Since:Ant 1.7
/** * Sets the name to use in logging messages. * * @param name The name to use in logging messages. * Should not be <code>null</code>. * @since Ant 1.7 */
public void setTaskName(String name) { this.taskName = name; }
Returns the name to use in logging messages.
Returns:the name to use in logging messages.
Since:Ant 1.7
/** * Returns the name to use in logging messages. * * @return the name to use in logging messages. * @since Ant 1.7 */
public String getTaskName() { return taskName; }
Add an <available> condition.
Params:
  • a – an available condition
Since:1.1
/** * Add an &lt;available&gt; condition. * @param a an available condition * @since 1.1 */
public void addAvailable(Available a) { conditions.add(a); }
Add an <checksum> condition.
Params:
  • c – a Checksum condition
Since:1.4, Ant 1.5
/** * Add an &lt;checksum&gt; condition. * * @param c a Checksum condition * @since 1.4, Ant 1.5 */
public void addChecksum(Checksum c) { conditions.add(c); }
Add an <uptodate> condition.
Params:
  • u – an UpToDate condition
Since:1.1
/** * Add an &lt;uptodate&gt; condition. * * @param u an UpToDate condition * @since 1.1 */
public void addUptodate(UpToDate u) { conditions.add(u); }
Add an <not> condition "container".
Params:
  • n – a Not condition
Since:1.1
/** * Add an &lt;not&gt; condition "container". * * @param n a Not condition * @since 1.1 */
public void addNot(Not n) { conditions.add(n); }
Add an <and> condition "container".
Params:
  • a – an And condition
Since:1.1
/** * Add an &lt;and&gt; condition "container". * * @param a an And condition * @since 1.1 */
public void addAnd(And a) { conditions.add(a); }
Add an <or> condition "container".
Params:
  • o – an Or condition
Since:1.1
/** * Add an &lt;or&gt; condition "container". * * @param o an Or condition * @since 1.1 */
public void addOr(Or o) { conditions.add(o); }
Add an <equals> condition.
Params:
  • e – an Equals condition
Since:1.1
/** * Add an &lt;equals&gt; condition. * * @param e an Equals condition * @since 1.1 */
public void addEquals(Equals e) { conditions.add(e); }
Add an <os> condition.
Params:
  • o – an Os condition
Since:1.1
/** * Add an &lt;os&gt; condition. * * @param o an Os condition * @since 1.1 */
public void addOs(Os o) { conditions.add(o); }
Add an <isset> condition.
Params:
  • i – an IsSet condition
Since:Ant 1.5
/** * Add an &lt;isset&gt; condition. * * @param i an IsSet condition * @since Ant 1.5 */
public void addIsSet(IsSet i) { conditions.add(i); }
Add an <http> condition.
Params:
  • h – an Http condition
Since:Ant 1.5
/** * Add an &lt;http&gt; condition. * * @param h an Http condition * @since Ant 1.5 */
public void addHttp(Http h) { conditions.add(h); }
Add a <socket> condition.
Params:
  • s – a Socket condition
Since:Ant 1.5
/** * Add a &lt;socket&gt; condition. * * @param s a Socket condition * @since Ant 1.5 */
public void addSocket(Socket s) { conditions.add(s); }
Add a <filesmatch> condition.
Params:
  • test – a FilesMatch condition
Since:Ant 1.5
/** * Add a &lt;filesmatch&gt; condition. * * @param test a FilesMatch condition * @since Ant 1.5 */
public void addFilesMatch(FilesMatch test) { conditions.add(test); }
Add a <contains> condition.
Params:
  • test – a Contains condition
Since:Ant 1.5
/** * Add a &lt;contains&gt; condition. * * @param test a Contains condition * @since Ant 1.5 */
public void addContains(Contains test) { conditions.add(test); }
Add a <istrue> condition.
Params:
  • test – an IsTrue condition
Since:Ant 1.5
/** * Add a &lt;istrue&gt; condition. * * @param test an IsTrue condition * @since Ant 1.5 */
public void addIsTrue(IsTrue test) { conditions.add(test); }
Add a <isfalse> condition.
Params:
  • test – an IsFalse condition
Since:Ant 1.5
/** * Add a &lt;isfalse&gt; condition. * * @param test an IsFalse condition * @since Ant 1.5 */
public void addIsFalse(IsFalse test) { conditions.add(test); }
Add an <isreference> condition.
Params:
  • i – an IsReference condition
Since:Ant 1.6
/** * Add an &lt;isreference&gt; condition. * * @param i an IsReference condition * @since Ant 1.6 */
public void addIsReference(IsReference i) { conditions.add(i); }
Add an <isfileselected> condition.
Params:
  • test – the condition
/** * Add an &lt;isfileselected&gt; condition. * @param test the condition */
public void addIsFileSelected(IsFileSelected test) { conditions.add(test); }
Add an arbitrary condition
Params:
  • c – a condition
Since:Ant 1.6
/** * Add an arbitrary condition * @param c a condition * @since Ant 1.6 */
public void add(Condition c) { conditions.add(c); } }