001 package org.shiftone.jrat.inject.ant; 002 003 004 import org.apache.tools.ant.BuildException; 005 import org.apache.tools.ant.Project; 006 import org.shiftone.jrat.core.criteria.IncludeExcludeMethodCriteria; 007 import org.shiftone.jrat.core.criteria.MatcherMethodCriteria; 008 import org.shiftone.jrat.inject.Injector; 009 010 import java.io.File; 011 012 013 /** 014 * @author jeff@shiftone.org (Jeff Drost) 015 */ 016 public class InjectTask extends AbstractFileTask { 017 018 private Injector injector; 019 private IncludeExcludeMethodCriteria methodCriteria; 020 021 public InjectTask() { 022 023 injector = new Injector(); 024 methodCriteria = new IncludeExcludeMethodCriteria(); 025 026 injector.setMethodCriteria(methodCriteria); 027 } 028 029 030 public MatcherMethodCriteria createInclude() { 031 032 MatcherMethodCriteria newCriteria = new MatcherMethodCriteria(); 033 034 methodCriteria.addPositive(newCriteria); 035 036 return newCriteria; 037 } 038 039 040 public MatcherMethodCriteria createExclude() { 041 042 MatcherMethodCriteria newCriteria = new MatcherMethodCriteria(); 043 044 methodCriteria.addNegative(newCriteria); 045 046 return newCriteria; 047 } 048 049 050 protected void processFile(File file) throws BuildException { 051 052 log("processFile(" + file.getAbsolutePath() + ")", Project.MSG_VERBOSE); 053 054 try { 055 injector.inject(file); 056 } 057 catch (Exception e) { 058 throw new BuildException(e); 059 } 060 } 061 062 063 protected void validateFile(File file) throws BuildException { 064 065 if (file.exists() == false) { 066 throw new BuildException("File does not exist : " + file.getAbsolutePath()); 067 } 068 } 069 }