|
Ant example source code file (ConditionBase.java)
The ConditionBase.java source code/* * 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 * * http://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.Enumeration; import java.util.Vector; import org.apache.tools.ant.Project; import org.apache.tools.ant.DynamicElement; import org.apache.tools.ant.ComponentHelper; 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 */ public abstract class ConditionBase extends ProjectComponent implements DynamicElement { private static final String CONDITION_ANTLIB = "antlib:org.apache.tools.ant.types.conditions:"; /** * name of the component */ private String taskName = "condition"; /** * */ private Vector conditions = new Vector(); /** * Simple constructor. */ protected ConditionBase() { taskName = "component"; } /** * 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. * * @return the number of conditions in the container * @since 1.1 */ protected int countConditions() { return conditions.size(); } /** * Iterate through all conditions. * * @return an enumeration to use for iteration * @since 1.1 */ protected final Enumeration getConditions() { return conditions.elements(); } /** * Sets the name to use in logging messages. * * @param name The name to use in logging messages. * Should not be <code>null. * @since Ant 1.7 */ public void setTaskName(String name) { this.taskName = name; } /** * 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. * @param a an available condition * @since 1.1 */ public void addAvailable(Available a) { conditions.addElement(a); } /** * Add an <checksum> condition. * * @param c a Checksum condition * @since 1.4, Ant 1.5 */ public void addChecksum(Checksum c) { conditions.addElement(c); } /** * Add an <uptodate> condition. * * @param u an UpToDate condition * @since 1.1 */ public void addUptodate(UpToDate u) { conditions.addElement(u); } /** * Add an <not> condition "container". * * @param n a Not condition * @since 1.1 */ public void addNot(Not n) { conditions.addElement(n); } /** * Add an <and> condition "container". * * @param a an And condition * @since 1.1 */ public void addAnd(And a) { conditions.addElement(a); } /** * Add an <or> condition "container". * * @param o an Or condition * @since 1.1 */ public void addOr(Or o) { conditions.addElement(o); } /** * Add an <equals> condition. * * @param e an Equals condition * @since 1.1 */ public void addEquals(Equals e) { conditions.addElement(e); } /** * Add an <os> condition. * * @param o an Os condition * @since 1.1 */ public void addOs(Os o) { conditions.addElement(o); } /** * Add an <isset> condition. * * @param i an IsSet condition * @since Ant 1.5 */ public void addIsSet(IsSet i) { conditions.addElement(i); } /** * Add an <http> condition. * * @param h an Http condition * @since Ant 1.5 */ public void addHttp(Http h) { conditions.addElement(h); } /** * Add a <socket> condition. * * @param s a Socket condition * @since Ant 1.5 */ public void addSocket(Socket s) { conditions.addElement(s); } /** * Add a <filesmatch> condition. * * @param test a FilesMatch condition * @since Ant 1.5 */ public void addFilesMatch(FilesMatch test) { conditions.addElement(test); } /** * Add a <contains> condition. * * @param test a Contains condition * @since Ant 1.5 */ public void addContains(Contains test) { conditions.addElement(test); } /** * Add a <istrue> condition. * * @param test an IsTrue condition * @since Ant 1.5 */ public void addIsTrue(IsTrue test) { conditions.addElement(test); } /** * Add a <isfalse> condition. * * @param test an IsFalse condition * @since Ant 1.5 */ public void addIsFalse(IsFalse test) { conditions.addElement(test); } /** * Add an <isreference> condition. * * @param i an IsReference condition * @since Ant 1.6 */ public void addIsReference(IsReference i) { conditions.addElement(i); } /** * Add an <isfileselected> condition. * @param test the condition */ public void addIsFileSelected(IsFileSelected test) { conditions.addElement(test); } /** * Add an arbitrary condition * @param c a condition * @since Ant 1.6 */ public void add(Condition c) { conditions.addElement(c); } /** * Create a dynamically discovered condition. Built-in conditions can * be discovered from the org.apache.tools.ant.taskdefs.condition * antlib. * @param name the condition to create. * @return the dynamic condition if found, null otherwise. */ public Object createDynamicElement(String name) { Object cond = ComponentHelper.getComponentHelper(getProject()) .createComponent(CONDITION_ANTLIB + name); if (!(cond instanceof Condition)) { return null; } log("Dynamically discovered '" + name + "' " + cond, Project.MSG_DEBUG); add((Condition) cond); return cond; } } Other Ant examples (source code examples)Here is a short list of links related to this Ant ConditionBase.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.