📄 conditionbase.java
字号:
/* * 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</code>. * @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. * <p> * This is a temporary fix until restricted type are added * in Ant 1.8.0. The purpose of this method is to stop polluting the * global type namespace with new conditionds - or worse adding new * methods to this class. * </p> * @since 1.7.0 * @deprecated since 1.7.1 This method will be removed in Ant 1.8.0. * Until then, ant core will use it, but third party software * should not rely on this method. * @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; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -