⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multireport.java

📁 java编写的OCR软件
💻 JAVA
字号:
package de.spieleck.app.jacson.report;

import de.spieleck.app.jacson.JacsonConfigException;
import de.spieleck.app.jacson.JacsonPrintReport;
import de.spieleck.app.jacson.JacsonReport;
import de.spieleck.app.jacson.JacsonState;
import de.spieleck.app.jacson.JacsonStately;
import de.spieleck.config.ConfigNode;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

/**
 * An report which dispatches a message to all contained
 * (possible multiple) reports.
 * <BR />
 * This class might not be directly usable in applications, but
 * is an important helper class anyway.
 *
 * @author fsn
 * @author Patrick Carl
 */
public class MultiReport
    implements JacsonPrintReport
{
    protected List reports;
    
    private JacsonState state;

    public MultiReport() 
    { 
        clear();
    }

    public void clear()
    {
        reports = new LinkedList();
    }

    /** Add another (completely initialized) report to the list */
    public void addReport(JacsonReport report)
    {
        reports.add(report);
        // register state
        report.registerState(getRegState());
    }

    /** Count the registered Reports */
    public int countReports()
    {
        return reports.size();
    }

    // Implement JacsonReport ----------------------------------------------
    public void init(ConfigNode config)
        throws JacsonConfigException
    {
    }

    public void registerState(JacsonState state)
    {
        this.state = state;
        // hand over registerred state to sub reports
        Iterator it = reports.iterator();
        while(it.hasNext()){
            ((JacsonStately) it.next()).registerState(state);
        }
    }

    public JacsonState getRegState() 
    {
        return state;
    }

    
    public void finish(boolean close)
    {
        Iterator it = reports.iterator();
        while ( it.hasNext()) 
        {
            JacsonReport rep = (JacsonReport) it.next();
            rep.finish(close);
        }
    }

    public void finish()
    {
        finish(true);
    }

    public void begin(String id)
    {
        Iterator it = reports.iterator();
        while ( it.hasNext()) 
        {
            JacsonReport rep = (JacsonReport) it.next();
            rep.begin(id);
        }
    }

    public void report(String localName, String value)
    {
        Iterator it = reports.iterator();
        while ( it.hasNext()) 
        {
            JacsonReport rep = (JacsonReport) it.next();
            rep.report(localName, value);
        }
    }

    public void end()
    {
        Iterator it = reports.iterator();
        while ( it.hasNext()) 
        {
            JacsonReport rep = (JacsonReport) it.next();
            rep.end();
        }
    }

    // Implement JacsonPrintReport -------------------------------------------
    /**
     * XXX Sometimes (most of the time) mangling different reports
     * into one file makes no sense and might cause unpredictable
     * behaviour.
     */
    public void setPrintWriter(PrintWriter pw)
      throws JacsonConfigException
    {
        Iterator it = reports.iterator();
        while ( it.hasNext()) 
        {
            Object o = it.next();
            if ( o instanceof JacsonPrintReport )
            {
                ((JacsonPrintReport)o).setPrintWriter(pw);
            }
        }
    }

    public void setOutputStream(OutputStream os)
      throws JacsonConfigException
    {
        Iterator it = reports.iterator();
        while ( it.hasNext()) 
        {
            Object o = it.next();
            if ( o instanceof JacsonPrintReport )
            {
                ((JacsonPrintReport)o).setOutputStream(os);
            }
        }
    }
}

//
//    Jacson - Text Filtering with Java.
//    Copyright (C) 2002 Frank S. Nestel (nestefan -at- users.sourceforge.net)
//
//    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
//

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -