编写自定义任务,轻松扩展Ant (2) 代码

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

结束:全部代码:

(问什么不能带附件?)

TimerTask.java:

import java.util.*;

import org.apache.tools.ant.Task;

import org.apache.tools.ant.Project;

import org.apache.tools.ant.BuildException;

/**

* TimerTask.java

* <p>Copyright: Copyright (c) 2003 你可以对本程序随意修改,复制,使用,但请保留这里注释声明!!!</p>

* @author 李尚强 blundblade@sina.com

*/

public class TimerTask extends Task {

private List fooList = new ArrayList();

private String action = ""; //init, print

private static final String TIME_PROPERTY_INTERNAL = "timer.msecs";

private static final String TIME_PROPERTY_NAME = "timer.passed";

public void execute() throws BuildException {

System.out.println("I am a timer");

System.out.println("but there are so many foos: " + fooList);

if (this.getOwningTarget() == null)

return;

Project proj = this.getOwningTarget().getProject();

String strTime = proj.getProperty(TIME_PROPERTY_INTERNAL);

try {

long currMSecs = System.currentTimeMillis();

if (action.equals("print")){

if (strTime == null)

proj.setProperty(TIME_PROPERTY_NAME, "Timer not initilized");

else {

long startMSecs = Long.parseLong(strTime);

long passedSecs = currMSecs - startMSecs;

int minutes = (int) ( passedSecs * 1.0 / (1000 * 60 * 60) );

int hours = minutes / 60;

minutes = minutes % 60;

strTime = hours + " hours " + minutes + " minutes";

proj.setProperty(TIME_PROPERTY_NAME, strTime);

}

}

else if (action.equals("init")) {

proj.setProperty(TIME_PROPERTY_INTERNAL, Long.toString(currMSecs));

}

}

catch (NumberFormatException nfe) {

throw new BuildException(nfe.getMessage());

}

}

public void addFoo(FooTask foo){

fooList.add(foo);

}

/**

* @return

*/

public String getAction() {

return action;

}

/**

* @param string

*/

public void setAction(String string) {

action = string;

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航