⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ccmcheck.java

📁 ant源代码
💻 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.optional.ccm;import java.io.File;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.taskdefs.Execute;import org.apache.tools.ant.types.Commandline;import org.apache.tools.ant.types.FileSet;/** * Class common to all check commands (checkout, checkin,checkin default task); * @ant.task ignore="true" */public class CCMCheck extends Continuus {    private File file = null;    private String comment = null;    private String task = null;    // CheckStyle:VisibilityModifier OFF - bc    protected Vector filesets = new Vector();    // CheckStyle:VisibilityModifier ON    /** Constructor for CCMCheck. */    public CCMCheck() {        super();    }    /**     * Get the value of file.     * @return value of file.     */    public File getFile() {        return file;    }    /**     * Sets the path to the file that the command will operate on.     * @param v  Value to assign to file.     */    public void setFile(File v) {        log("working file " + v, Project.MSG_VERBOSE);        this.file = v;    }    /**     * Get the value of comment.     * @return value of comment.     */    public String getComment() {        return comment;    }    /**     * Specifies a comment.     * @param v  Value to assign to comment.     */    public void setComment(String v) {        this.comment = v;    }    /**     * Get the value of task.     * @return value of task.     */    public String getTask() {        return task;    }    /**     * Specifies the task number used to check     * in the file (may use 'default').     * @param v  Value to assign to task.     */    public void setTask(String v) {        this.task = v;    }    /**     * Adds a set of files to copy.     * @param set the set of files     */    public void addFileset(FileSet set) {        filesets.addElement(set);    }    /**     * Executes the task.     * <p>     * Builds a command line to execute ccm and then calls Exec's run method     * to execute the command line.     * </p>     * @throws BuildException on error     */    public void execute() throws BuildException {        if (file == null && filesets.size() == 0) {            throw new BuildException(                "Specify at least one source - a file or a fileset.");        }        if (file != null && file.exists() && file.isDirectory()) {            throw new BuildException("CCMCheck cannot be generated for directories");        }        if (file != null  && filesets.size() > 0) {            throw new BuildException("Choose between file and fileset !");        }        if (getFile() != null) {            doit();            return;        }        int sizeofFileSet = filesets.size();        for (int i = 0; i < sizeofFileSet; i++) {            FileSet fs = (FileSet) filesets.elementAt(i);            DirectoryScanner ds = fs.getDirectoryScanner(getProject());            String[] srcFiles = ds.getIncludedFiles();            for (int j = 0; j < srcFiles.length; j++) {                File src = new File(fs.getDir(getProject()), srcFiles[j]);                setFile(src);                doit();            }        }    }    /**     * check the file given by getFile().     */    private void doit() {        Commandline commandLine = new Commandline();        // build the command line from what we got the format is        // ccm co /t .. files        // as specified in the CCM.EXE help        commandLine.setExecutable(getCcmCommand());        commandLine.createArgument().setValue(getCcmAction());        checkOptions(commandLine);        int result = run(commandLine);        if (Execute.isFailure(result)) {            String msg = "Failed executing: " + commandLine.toString();            throw new BuildException(msg, getLocation());        }    }    /**     * Check the command line options.     */    private void checkOptions(Commandline cmd) {        if (getComment() != null) {            cmd.createArgument().setValue(FLAG_COMMENT);            cmd.createArgument().setValue(getComment());        }        if (getTask() != null) {            cmd.createArgument().setValue(FLAG_TASK);            cmd.createArgument().setValue(getTask());        }        if (getFile() != null) {            cmd.createArgument().setValue(file.getAbsolutePath());        }    }    /**     * -comment flag -- comment to attach to the file     */    public static final String FLAG_COMMENT = "/comment";    /**     *  -task flag -- associate checkout task with task     */    public static final String FLAG_TASK = "/task";}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -