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

📄 jacsonantfilter.java

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

import java.io.Reader;
import java.io.IOException;

import org.apache.tools.ant.Project;
import org.apache.tools.ant.types.Parameterizable;
import org.apache.tools.ant.types.Parameter;
// XXX When does ant call the chain method??
// import org.apache.tools.ant.filters.ChainableReader;

import de.spieleck.app.jacson.JacsonState;
import de.spieleck.app.jacson.JacsonReader;
import de.spieleck.app.jacson.JacsonConfigException;

/**
 * Wrap a Jacson into a {@link java.io.FilterReader} which works within
 * a Ant FilterChain.
 * <p>
 * Parameters can be be feed thru the FilterReader/param mechanism.
 * The parameter
 * <pre>
 *   <param name="config" value="your.file.name"/>
 * </pre>
 * is necessary to point to a configuration file to make Jacson work.
 * Note that Configurations used by will not work with all kinds of reports.
 * <code>PrintingReport</code> and <code>ValuePrintingReport</code> will work.
 * </p>
 *
 * @author fsn
 * @since 0.80
 */
public class JacsonAntFilter
    extends JacsonReader
    implements Parameterizable
{
    /** The environmental project. XXX not working. */
    protected Project project = null;

    /** The filter parameters. */
    protected Parameter parameters[] = null;

    /** Create this filter. */
    public JacsonAntFilter(Reader reader)
        throws JacsonConfigException, IOException
    { 
        super(reader);
    }

    /**
     * Store the environmental Ant project.
     * @param project this is the project.
     * XXX Not called by ant!
     */
    public void setProject(Project project)
    {
        System.err.println("setProject()");
        this.project = project;
    }

    /**
     * Get the project.
     * @return the project stored
     * XXX Not called by ant!
     */
    public Project getProject()
    {
        return project;
    }

    /**
     * Store the filter parameters.
     * @param parameters the environmental parameters.
     */
    public void setParameters(Parameter[] parameters)
    {
        // Works: System.err.println("setParameters()");
        this.parameters = parameters;
    }

    /**
     *
     */
    protected JacsonState obtainRootState()
    {
        JacsonState rootState;
        // System.err.println("obtainRootState(), project="+project);
        if ( project == null )
            rootState = new JacsonState();
        else
            rootState = new ProjectJacsonState(project);
        // Feed the parameters to the new task
        if ( parameters != null )
        {
            for(int i = 0; i < parameters.length; i++)
            {
                String name = parameters[i].getName();
                String value = parameters[i].getValue();
                if ( name.equalsIgnoreCase("config") )
                    setConfig(value);
                rootState.put(name, value);
            }
        }
        return rootState;
    }
}
//
//    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 + -