Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
编写自定义任务,轻松扩展Ant (2) 代码

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

结束:全部代码:

 

(问什么不能带附件?)

 

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 李尚强 [email protected]

 */

 

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;

}

 

}




相关文章

相关软件