aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/TempFile.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/TempFile.java')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/TempFile.java163
1 files changed, 163 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/TempFile.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/TempFile.java
new file mode 100644
index 00000000..5f55a376
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/TempFile.java
@@ -0,0 +1,163 @@
+/*
+ * 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 org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.util.FileUtils;
+
+/**
+ * This task sets a property to the name of a temporary file.
+ * Unlike {@link File#createTempFile}, this task does not (by default) actually create the
+ * temporary file, but it does guarantee that the file did not
+ * exist when the task was executed.
+ * <p>
+ * Examples
+ * <pre>&lt;tempfile property="temp.file" /&gt;</pre>
+ * create a temporary file
+ * <pre>&lt;tempfile property="temp.file" suffix=".xml" /&gt;</pre>
+ * create a temporary file with the .xml suffix.
+ * <pre>&lt;tempfile property="temp.file" destDir="build"/&gt;</pre>
+ * create a temp file in the build subdir
+ * @since Ant 1.5
+ * @ant.task
+ */
+
+public class TempFile extends Task {
+
+ private static final FileUtils FILE_UTILS = FileUtils.getFileUtils();
+
+ /**
+ * Name of property to set.
+ */
+ private String property;
+
+ /**
+ * Directory to create the file in. Can be null.
+ */
+ private File destDir = null;
+
+ /**
+ * Prefix for the file.
+ */
+ private String prefix;
+
+ /**
+ * Suffix for the file.
+ */
+ private String suffix = "";
+
+ /** deleteOnExit flag */
+ private boolean deleteOnExit;
+
+ /** createFile flag */
+ private boolean createFile;
+
+ /**
+ * Sets the property you wish to assign the temporary file to.
+ *
+ * @param property The property to set
+ * @ant.attribute group="required"
+ */
+ public void setProperty(String property) {
+ this.property = property;
+ }
+
+
+ /**
+ * Sets the destination directory. If not set,
+ * the basedir directory is used instead.
+ *
+ * @param destDir The new destDir value
+ */
+ public void setDestDir(File destDir) {
+ this.destDir = destDir;
+ }
+
+
+ /**
+ * Sets the optional prefix string for the temp file.
+ *
+ * @param prefix string to prepend to generated string
+ */
+ public void setPrefix(String prefix) {
+ this.prefix = prefix;
+ }
+
+
+ /**
+ * Sets the optional suffix string for the temp file.
+ *
+ * @param suffix suffix including any "." , e.g ".xml"
+ */
+ public void setSuffix(String suffix) {
+ this.suffix = suffix;
+ }
+
+ /**
+ * Set whether the tempfile created by this task should be set
+ * for deletion on normal VM exit.
+ * @param deleteOnExit boolean flag.
+ */
+ public void setDeleteOnExit(boolean deleteOnExit) {
+ this.deleteOnExit = deleteOnExit;
+ }
+
+ /**
+ * Learn whether deleteOnExit is set for this tempfile task.
+ * @return boolean deleteOnExit flag.
+ */
+ public boolean isDeleteOnExit() {
+ return deleteOnExit;
+ }
+
+ /**
+ * If set the file is actually created, if not just a name is created.
+ * @param createFile boolean flag.
+ */
+ public void setCreateFile(boolean createFile) {
+ this.createFile = createFile;
+ }
+
+ /**
+ * Learn whether createFile flag is set for this tempfile task.
+ * @return the createFile flag.
+ */
+ public boolean isCreateFile() {
+ return createFile;
+ }
+
+ /**
+ * Creates the temporary file.
+ *
+ * @exception BuildException if something goes wrong with the build
+ */
+ public void execute() throws BuildException {
+ if (property == null || property.length() == 0) {
+ throw new BuildException("no property specified");
+ }
+ if (destDir == null) {
+ destDir = getProject().resolveFile(".");
+ }
+ File tfile = FILE_UTILS.createTempFile(prefix, suffix, destDir,
+ deleteOnExit, createFile);
+ getProject().setNewProperty(property, tfile.toString());
+ }
+}