?? fluentconfigurator.java
字號:
{ flush(); this.state = state; } /** * Takes and configuration that is in progress and calls methods on the * various objects to enable that configuration. */ private void flush() { switch (state) { case STATE_INIT_CONVERT: // do nothing; break; case STATE_INIT_CREATE: // do nothing; break; case STATE_ALLOW_CONVERT: try { if (params == null) { converterManager.addConverter(match, converter, EMPTY_MAP); } else { converterManager.addConverter(match, converter, params); } } catch (Exception e) { log.warn("Failed to add converter of type='" + converter + "', match=" + match + ": ", e); } params = null; match = null; converter = null; break; case STATE_ALLOW_CREATE: try { if (params == null) { creatorManager.addCreator(scriptName, typeName, EMPTY_MAP); } else { creatorManager.addCreator(scriptName, typeName, params); } if (filters != null) { for (Iterator it = filters.iterator(); it.hasNext();) { String className = (String) it.next(); AjaxFilter filter = (AjaxFilter) LocalUtil.classNewInstance(scriptName, className, AjaxFilter.class); if (filter != null) { LocalUtil.setParams(filter, Collections.EMPTY_MAP, Collections.EMPTY_LIST); ajaxFilterManager.addAjaxFilter(filter, scriptName); } } } } catch (Exception e) { log.warn("Failed to add creator of type='" + typeName + "', scriptName=" + scriptName + ": ", e); } params = null; scriptName = null; typeName = null; filters = null; break; case STATE_ALLOW_FILTER: try { Class impl = LocalUtil.classForName(filterClassName); AjaxFilter object = (AjaxFilter) impl.newInstance(); if (params != null) { LocalUtil.setParams(object, params, Collections.EMPTY_LIST); } ajaxFilterManager.addAjaxFilter(object); } catch (ClassCastException ex) { log.error(filterClassName + " does not implement " + AjaxFilter.class.getName(), ex); } catch (NoClassDefFoundError ex) { log.info("Missing class for filter (class='" + filterClassName + "'). Cause: " + ex.getMessage()); } catch (Exception ex) { log.error("Failed to add filter: class=" + filterClassName, ex); } params = null; filterClassName = null; break; case STATE_SIGNATURE: if (signature != null && signature.length() > 0) { SignatureParser sigp = new SignatureParser(converterManager, creatorManager); sigp.parse(signature.toString()); } break; default: break; } } /* (non-Javadoc) * @see org.directwebremoting.Configurator#configure(org.directwebremoting.Container) */ public void configure(Container container) { converterManager = (ConverterManager) container.getBean(ConverterManager.class.getName()); ajaxFilterManager = (AjaxFilterManager) container.getBean(AjaxFilterManager.class.getName()); accessControl = (AccessControl) container.getBean(AccessControl.class.getName()); creatorManager = (CreatorManager) container.getBean(CreatorManager.class.getName()); configure(); setState(STATE_COMPLETE); } /** * Used for <allow create .../> */ private String typeName = null; /** * Used for <allow create .../> */ private String scriptName = null; /** * Used for <allow filter .../> */ private String filterClassName = null; /** * Used for <allow convert .../> */ private String converter = null; /** * Used for <allow convert .../> */ private String match = null; /** * holds name / value pairs used in <allow create|convert ... /> */ private Map params = null; /** * holds classNames of filters used in <allow create/ filter /> */ private List filters = null; /** * holds signature lines */ private StringBuffer signature = null; /** * What section of a configuration are we in? */ private int state = -1; /** * JDK5: we can convert this to Collections.emptyMap(); */ private static final Map EMPTY_MAP = Collections.unmodifiableMap(new HashMap()); /** * What AjaxFilters apply to which Ajax calls? */ private AjaxFilterManager ajaxFilterManager = null; /** * The ConverterManager that we are configuring */ private ConverterManager converterManager = null; /** * The AccessControl that we are configuring */ private AccessControl accessControl = null; /** * The CreatorManager that we are configuring */ private CreatorManager creatorManager = null; /** * {@link #state} to say we are working in {@link #withCreatorType(String, String)} */ private static final int STATE_INIT_CREATE = 0; /** * {@link #state} to say we are working in {@link #withConverterType(String, String)} */ private static final int STATE_INIT_CONVERT = 1; /** * {@link #state} to say we are working in {@link #withCreator(String, String)} */ private static final int STATE_ALLOW_CREATE = 2; /** * {@link #state} to say we are working in {@link #withFilter(String)} */ private static final int STATE_ALLOW_FILTER = 3; /** * {@link #state} to say we are working in {@link #withConverter(String, String)} */ private static final int STATE_ALLOW_CONVERT = 4; /** * {@link #state} to say we are working in {@link #withSignature()} */ private static final int STATE_SIGNATURE = 5; /** * {@link #state} to say {@link #configure()} has completed */ private static final int STATE_COMPLETE = 6; /** * The log stream */ private static final Logger log = Logger.getLogger(FluentConfigurator.class);}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -