git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@277065 13f79535-47bb-0310-9956-ffa450edef68master
@@ -1,95 +0,0 @@ | |||||
/* | |||||
* Copyright 2004 The Apache Software Foundation | |||||
* | |||||
* Licensed 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; | |||||
import org.apache.tools.ant.BuildException; | |||||
import org.apache.tools.ant.Task; | |||||
import org.apache.tools.ant.taskdefs.condition.Condition; | |||||
/** | |||||
* Abstract task to allow defintion of a task or a condition. | |||||
* It has property and value (for the property) attributes. | |||||
* | |||||
* @since Ant 1.7 | |||||
* | |||||
* @ant.task category="control" | |||||
*/ | |||||
public abstract class ConditionAndTask extends Task implements Condition { | |||||
private String property; | |||||
private String value = "true"; | |||||
/** | |||||
* Set the name of the property which will be set if the particular resource | |||||
* is available. | |||||
* | |||||
* @param property the name of the property to set. | |||||
*/ | |||||
public void setProperty(String property) { | |||||
this.property = property; | |||||
} | |||||
/** | |||||
* Set the value to be given to the property if the desired resource is | |||||
* available. | |||||
* | |||||
* @param value the value to be given. | |||||
*/ | |||||
public void setValue(String value) { | |||||
this.value = value; | |||||
} | |||||
/** | |||||
* This method should be overridden by derived classes. | |||||
* It is used by eval() to evaluate the condition. | |||||
* @return true if the condition passes, false otherwise. | |||||
*/ | |||||
protected abstract boolean evaluate(); | |||||
/** | |||||
* This method evaluates the condition. It calls evaluate in the | |||||
* derived class. | |||||
* It sets the property if a property is present and if the | |||||
* evaluate returns true. | |||||
* @return true if the condition passes, false otherwise. | |||||
*/ | |||||
public boolean eval() { | |||||
if (evaluate()) { | |||||
if (property != null) { | |||||
getProject().setNewProperty(property, value); | |||||
} | |||||
return true; | |||||
} else { | |||||
return false; | |||||
} | |||||
} | |||||
/** | |||||
* Entry point when operating as a task. | |||||
* | |||||
* @exception BuildException if the task is not configured correctly. | |||||
*/ | |||||
public void execute() throws BuildException { | |||||
if (property == null) { | |||||
throw new BuildException("property attribute is required", | |||||
getLocation()); | |||||
} | |||||
eval(); | |||||
} | |||||
} |
@@ -14,10 +14,11 @@ | |||||
* limitations under the License. | * limitations under the License. | ||||
* | * | ||||
*/ | */ | ||||
package org.apache.tools.ant.taskdefs; | |||||
package org.apache.tools.ant.taskdefs.condition; | |||||
import org.apache.tools.ant.BuildException; | import org.apache.tools.ant.BuildException; | ||||
import org.apache.tools.ant.Project; | import org.apache.tools.ant.Project; | ||||
import org.apache.tools.ant.types.DataType; | |||||
import java.io.File; | import java.io.File; | ||||
import java.io.IOException; | import java.io.IOException; | ||||
import java.util.zip.ZipEntry; | import java.util.zip.ZipEntry; | ||||
@@ -30,7 +31,7 @@ import java.util.Enumeration; | |||||
* particular signature; otherwise the file is checked for the | * particular signature; otherwise the file is checked for the | ||||
* existence of any signature. | * existence of any signature. | ||||
*/ | */ | ||||
public class IsSigned extends ConditionAndTask { | |||||
public class IsSigned extends DataType implements Condition { | |||||
private static final String SIG_START = "META-INF/"; | private static final String SIG_START = "META-INF/"; | ||||
private static final String SIG_END = ".SF"; | private static final String SIG_END = ".SF"; | ||||
@@ -63,7 +64,7 @@ public class IsSigned extends ConditionAndTask { | |||||
* specified, if the file contains a signature. | * specified, if the file contains a signature. | ||||
* @return true if the file is signed. | * @return true if the file is signed. | ||||
*/ | */ | ||||
protected boolean evaluate() { | |||||
public boolean eval() { | |||||
if (file == null) { | if (file == null) { | ||||
throw new BuildException("The file attribute must be set."); | throw new BuildException("The file attribute must be set."); | ||||
} | } |
@@ -80,7 +80,6 @@ defaultexcludes=org.apache.tools.ant.taskdefs.DefaultExcludes | |||||
presetdef=org.apache.tools.ant.taskdefs.PreSetDef | presetdef=org.apache.tools.ant.taskdefs.PreSetDef | ||||
macrodef=org.apache.tools.ant.taskdefs.MacroDef | macrodef=org.apache.tools.ant.taskdefs.MacroDef | ||||
nice=org.apache.tools.ant.taskdefs.Nice | nice=org.apache.tools.ant.taskdefs.Nice | ||||
issigned=org.apache.tools.ant.taskdefs.IsSigned | |||||
libraries=org.apache.tools.ant.taskdefs.repository.Libraries | libraries=org.apache.tools.ant.taskdefs.repository.Libraries | ||||
# optional tasks | # optional tasks | ||||
@@ -34,5 +34,6 @@ scriptfilter=org.apache.tools.ant.types.optional.ScriptFilter | |||||
propertyset=org.apache.tools.ant.types.PropertySet | propertyset=org.apache.tools.ant.types.PropertySet | ||||
assertions=org.apache.tools.ant.types.Assertions | assertions=org.apache.tools.ant.types.Assertions | ||||
concatfilter=org.apache.tools.ant.filters.ConcatFilter | concatfilter=org.apache.tools.ant.filters.ConcatFilter | ||||
issigned=org.apache.tools.ant.taskdefs.condition.IsSigned | |||||
ispingable=org.apache.tools.ant.taskdefs.optional.condition.IsPingable | ispingable=org.apache.tools.ant.taskdefs.optional.condition.IsPingable | ||||
mavenrepository=org.apache.tools.ant.taskdefs.optional.repository.MavenRepository | mavenrepository=org.apache.tools.ant.taskdefs.optional.repository.MavenRepository |
@@ -18,7 +18,7 @@ | |||||
package org.apache.tools.ant.types.selectors; | package org.apache.tools.ant.types.selectors; | ||||
import java.io.File; | import java.io.File; | ||||
import org.apache.tools.ant.types.DataType; | import org.apache.tools.ant.types.DataType; | ||||
import org.apache.tools.ant.taskdefs.IsSigned; | |||||
import org.apache.tools.ant.taskdefs.condition.IsSigned; | |||||
/** | /** | ||||
* Selector that chooses files based on whether they are signed or not. | * Selector that chooses files based on whether they are signed or not. | ||||