|
Ant example source code file (UpToDate.java)
The UpToDate.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; import java.io.File; import java.util.Enumeration; import java.util.Vector; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; import org.apache.tools.ant.taskdefs.condition.Condition; import org.apache.tools.ant.types.Resource; import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.resources.Union; import org.apache.tools.ant.types.Mapper; import org.apache.tools.ant.util.FileNameMapper; import org.apache.tools.ant.util.MergingMapper; import org.apache.tools.ant.util.ResourceUtils; import org.apache.tools.ant.util.SourceFileScanner; /** * Sets the given property if the specified target has a timestamp * greater than all of the source files. * * @since Ant 1.2 * * @ant.task category="control" */ public class UpToDate extends Task implements Condition { private String property; private String value; private File sourceFile; private File targetFile; private Vector sourceFileSets = new Vector(); private Union sourceResources = new Union(); // CheckStyle:VisibilityModifier OFF - bc protected Mapper mapperElement = null; // CheckStyle:VisibilityModifier ON /** * The property to set if the target file is more up-to-date than * (each of) the source file(s). * * @param property the name of the property to set if Target is up-to-date. */ public void setProperty(final String property) { this.property = property; } /** * The value to set the named property to if the target file is more * up-to-date than (each of) the source file(s). Defaults to 'true'. * * @param value the value to set the property to if Target is up-to-date */ public void setValue(final String value) { this.value = value; } /** * Returns the value, or "true" if a specific value wasn't provided. */ private String getValue() { return (value != null) ? value : "true"; } /** * The file which must be more up-to-date than (each of) the source file(s) * if the property is to be set. * * @param file the file we are checking against. */ public void setTargetFile(final File file) { this.targetFile = file; } /** * The file that must be older than the target file * if the property is to be set. * * @param file the file we are checking against the target file. */ public void setSrcfile(final File file) { this.sourceFile = file; } /** * Nested <srcfiles> element. * @param fs the source files */ public void addSrcfiles(final FileSet fs) { sourceFileSets.addElement(fs); } /** * Nested resource collections as sources. * @return the source resources to configure. * @since Ant 1.7 */ public Union createSrcResources() { return sourceResources; } /** * Defines the FileNameMapper to use (nested mapper element). * @return a mapper to be configured * @throws BuildException if more than one mapper is defined */ public Mapper createMapper() throws BuildException { if (mapperElement != null) { throw new BuildException("Cannot define more than one mapper", getLocation()); } mapperElement = new Mapper(getProject()); return mapperElement; } /** * A nested filenamemapper * @param fileNameMapper the mapper to add * @since Ant 1.6.3 */ public void add(FileNameMapper fileNameMapper) { createMapper().add(fileNameMapper); } /** * Evaluate (all) target and source file(s) to * see if the target(s) is/are up-to-date. * @return true if the target(s) is/are up-to-date */ public boolean eval() { if (sourceFileSets.size() == 0 && sourceResources.size() == 0 && sourceFile == null) { throw new BuildException("At least one srcfile or a nested " + "<srcfiles> or Other Ant examples (source code examples)Here is a short list of links related to this Ant UpToDate.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.