/* * 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. * */ /* * Task to rename files based on extension. This task has the following * properties which can be set: * <ul> * <li>fromExtension: </li> * <li>toExtension: </li> * <li>srcDir: </li> * <li>replace: </li> * </ul> */ package org.apache.tools.ant.taskdefs.optional; import java.io.File; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; import org.apache.tools.ant.taskdefs.MatchingTask; import org.apache.tools.ant.taskdefs.Move; import org.apache.tools.ant.types.Mapper; /** * * @version 1.2 * * @deprecated since 1.5.x. * Use <move> instead */ public class RenameExtensions extends MatchingTask { private String fromExtension = ""; private String toExtension = ""; private boolean replace = false; private File srcDir; private Mapper.MapperType globType; /** Creates new RenameExtensions */ public RenameExtensions() { super(); globType = new Mapper.MapperType(); globType.setValue("glob"); } /** * The string that files must end in to be renamed * * @param from the extension of files being renamed. */ public void setFromExtension(String from) { fromExtension = from; } /** * The string that renamed files will end with on * completion * * @param to the extension of the renamed files. */ public void setToExtension(String to) { toExtension = to; } /** * store replace attribute - this determines whether the target file * should be overwritten if present * * @param replace if true overwrite any target files that exist. */ public void setReplace(boolean replace) { this.replace = replace; } /** * Set the source dir to find the files to be renamed. * * @param srcDir the source directory. */ public void setSrcDir(File srcDir) { this.srcDir = srcDir; } /** * Executes the task. * * @throws BuildException is there is a problem in the task execution. */ public void execute() throws BuildException { // first off, make sure that we've got a from and to extension if (fromExtension == null || toExtension == null || srcDir == null) { throw new BuildException("srcDir, fromExtension and toExtension " + "attributes must be set!"); } log("DEPRECATED - The renameext task is deprecated. Use move instead.", Project.MSG_WARN); log("Replace this with:", Project.MSG_INFO); log("<move todir=\"" + srcDir + "\" overwrite=\"" + replace + "\">", Project.MSG_INFO); log(" <fileset dir=\"" + srcDir + "\" />", Project.MSG_INFO); log(" <mapper type=\"glob\"", Project.MSG_INFO); log(" from=\"*" + fromExtension + "\"", Project.MSG_INFO); log(" to=\"*" + toExtension + "\" />", Project.MSG_INFO); log("</move>", Project.MSG_INFO); log("using the same patterns on <fileset> as you\'ve used here", Project.MSG_INFO); Move move = new Move(); move.bindToOwner(this); move.setOwningTarget(getOwningTarget()); move.setTaskName(getTaskName()); move.setLocation(getLocation()); move.setTodir(srcDir); move.setOverwrite(replace); fileset.setDir(srcDir); move.addFileset(fileset); Mapper me = move.createMapper(); me.setType(globType); me.setFrom("*" + fromExtension); me.setTo("*" + toExtension); move.execute(); } }