UnionBugs2.java :  » Code-Analyzer » findbugs-1.3.9 » edu » umd » cs » findbugs » anttask » Java Open Source

Java Open Source » Code Analyzer » findbugs 1.3.9 
findbugs 1.3.9 » edu » umd » cs » findbugs » anttask » UnionBugs2.java
/*
 * UnionBugs - Ant Task to Merge Findbugs Bug Reports 
 * Copyright (C) 2008 peterfranza.com
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

package edu.umd.cs.findbugs.anttask;

import java.io.File;
import java.util.ArrayList;

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DirectoryScanner;
import org.apache.tools.ant.types.FileSet;

/**
 * An ant task that is wraps the behavior of the UnionResults executable into an
 * ant task.
 * 
 * <taskdef name="UnionBugs2" classname="edu.umd.cs.findbugs.anttask.UnionBugs2"
 * classpath="...">
 * 
 * <UnionBugs2 to="${basedir}/findbugs.xml" > <fileset dir="plugins"> <include
 * name="*_findbugs_partial.xml" /> </fileset> </UnionBugs>
 *
 * 
 * @ant.task category="utility"
 * 
 */

public class UnionBugs2 extends AbstractFindBugsTask {

  private String to;

  private ArrayList<FileSet> fileSets = new ArrayList<FileSet>();

  public void setTo(String arg) {
    this.to = arg;
  }

  public void setFileset(FileSet arg) {
    this.fileSets.add(arg);
  }

  /**
   * @param mainClass
   */
  protected UnionBugs2() {
    super("edu.umd.cs.findbugs.workflow.UnionResults");
    setFailOnError(true);
  }

  @Override
  protected void checkParameters() {
    super.checkParameters();

    if (to == null)
      throw new BuildException("to attribute is required", getLocation());

    if (fileSets.size() < 1)
      throw new BuildException("fileset is required");
  }

  @Override
  protected void afterExecuteJavaProcess(int rc) {
    if (rc != 0)
      throw new BuildException("execution of " + getTaskName() + " failed");

  }

  @Override
  protected void beforeExecuteJavaProcess() {
    log("unioning bugs...");
  }

  @Override
  protected void configureFindbugsEngine() {
    addArg("-withMessages");
    addArg("-output");
    addArg(to);
    for (FileSet s : fileSets) {
      File fromDir = s.getDir(getProject());
      for(String file: s.getDirectoryScanner(getProject()).getIncludedFiles()) {
        addArg(new File(fromDir, file).toString());
      }
    }

  }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.