setstateparamfilter.java

来自「java编写的OCR软件」· Java 代码 · 共 87 行

JAVA
87
字号
/* * SetStateFilter.java * * Created on 27. Januar 2004, 11:46 */package de.spieleck.app.jacson.filter;import de.spieleck.app.jacson.JacsonConfigException;import java.util.Enumeration;import java.util.Hashtable;import java.util.Iterator;import de.spieleck.app.jacson.JacsonException;import de.spieleck.app.jacson.JacsonRegistry;import de.spieleck.app.jacson.JacsonState;import de.spieleck.config.ConfigNode;/** * This filter sets a state of Jacson state.<br> * The state is set during initialization. The actual filtering behaviour is * inherited from ConstFilter * @author  Patrick Carl */public class SetStateParamFilter extends FilterBase {        public static final String PARAMETER_NODE = "param";    public static final String PARAMETER_NAME_NODE = "name";    public static final String PARAMETER_VALUE_NODE = "value";    public static final String REPEATING_NODE = "repeating";        private boolean repeating = false;    private boolean done = false;        private Hashtable paramSettings = new Hashtable();        /** Creates a new instance of SetStateFilter */    public SetStateParamFilter() {    }        /**     * nits this filter and sets params of the registered JacsonState     */    public void init(ConfigNode config, JacsonRegistry registry)    throws JacsonConfigException {        repeating = config.getBoolean(REPEATING_NODE,  true);                Iterator it = config.childrenNamed(PARAMETER_NODE);        ConfigNode param = null;                while(it.hasNext()){            param = (ConfigNode) it.next();            paramSettings.put(param.getString(PARAMETER_NAME_NODE, null),            param.getString(PARAMETER_VALUE_NODE, null));        }    }        public boolean accept(ConfigNode node) {        String name = node.getName();        return name.equals(PARAMETER_NODE) ||        name.equals(PARAMETER_NAME_NODE) || name.equals(PARAMETER_VALUE_NODE) ||        name.equals(REPEATING_NODE);    }        public void putChunk(String chunk)    throws JacsonException {        if(repeating || !done){            JacsonState state = getRegState();            Enumeration keys = paramSettings.keys();            Object key = null;            Object val = null;            while(keys.hasMoreElements()){                key = keys.nextElement();                if(key == null)                    continue;                val = paramSettings.get(key);                if(val != null)                    state.set(key.toString(), val.toString());            }            done = true;        }        drain.putChunk(chunk);    }}

⌨️ 快捷键说明

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