📄 setstateparamfilter.java
字号:
/* * 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -