gatewayexporttask.java
来自「Jive是基于JSP/JAVA技术构架的一个大型BBS论坛系统,这是Jive论坛」· Java 代码 · 共 138 行
JAVA
138 行
/** * $RCSfile: GatewayExportTask.java,v $ * $Revision: 1.2 $ * $Date: 2002/03/08 03:56:52 $ * * Copyright (C) 1999-2002 CoolServlets, Inc. All Rights Reserved. * * This software is the proprietary information of CoolServlets, Inc. * Use is subject to license terms. */package com.jivesoftware.forum.gateway;import com.jivesoftware.forum.*;import java.util.Date;import java.util.Iterator;import java.util.ArrayList;import java.util.List;/** * A task that performs a gateway export. */public class GatewayExportTask implements Runnable { private boolean isBusy = false; private boolean hasRun = false; private Forum forum = null; private Gateway gateway = null; private Date afterDate = new Date(); private int current = 0; private int total = 0; private ArrayList err = new ArrayList(); public GatewayExportTask(Forum forum, Gateway gateway, Date afterDate) { this.forum = forum; this.gateway = gateway; this.afterDate = afterDate; } public boolean isBusy() { return isBusy; } public boolean hasRun() { return hasRun; } public int getCurrentMessageCount() { return current; } public int getTotalMessageCount() { return total; } public ArrayList getErrors() { return err; } public void run() { try { hasRun = true; isBusy = true; Iterator messages = forum.messages(); total = forum.getMessageCount(); List toExport = new ArrayList(); while (messages.hasNext()) { ForumMessage message = (ForumMessage) messages.next(); Date mdate = message.getCreationDate(); // if the current message is too old we'll test all children // of the root message in the thread to see if any of the // children are younger than the cutoff date. If so, we export // every message in the thread if (mdate.before(afterDate)) { ForumThread mThread = message.getForumThread(); TreeWalker mTree = mThread.treeWalker(); Iterator iter = mTree.recursiveChildren(mThread.getRootMessage()); boolean youngChild = false; while (iter.hasNext()) { ForumMessage m = (ForumMessage) iter.next(); if (m.getCreationDate().after(afterDate) && m.getProperty(JavaMailGateway.DUMMY_PARENT_HEADER) != null) { youngChild = true; break; } } if (!youngChild) { total--; continue; } } // dummy message, we won't export if (message.getProperty(JavaMailGateway.DUMMY_PARENT_HEADER) != null) { total--; continue; } current++; toExport.add(message); } try { ForumMessage[] fmArray = new ForumMessage[1]; gateway.exportData((ForumMessage[]) toExport.toArray(fmArray)); } catch (GatewayException ge) { err.add(ge); ge.printStackTrace(); } } finally { isBusy = false; gateway = null; } } public void stop() { synchronized(this) { try { if (isBusy && gateway != null) { GatewayExporter exporter = gateway.getGatewayExporter(); exporter.stop(); } } catch (GatewayException ge) { ge.printStackTrace(); } } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?