springtyperesolver.java
来自「一个很好实用的工作流OSWORKFLOW开发例子.有着非常优秀的灵活性.」· Java 代码 · 共 100 行
JAVA
100 行
/* * Copyright (c) 2002-2003 by OpenSymphony * All rights reserved. */package com.opensymphony.workflow.util;import com.opensymphony.workflow.*;import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import java.util.HashMap;import java.util.Map;/** * Spring-aware type resolver. */public class SpringTypeResolver extends TypeResolver implements ApplicationContextAware { //~ Static fields/initializers ///////////////////////////////////////////// private static final String BEANNAME = "bean.name"; private static final String SPRING = "spring"; //~ Instance fields //////////////////////////////////////////////////////// private ApplicationContext applicationContext; private Map springFunctions = new HashMap(); //~ Methods //////////////////////////////////////////////////////////////// public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; } public Condition getCondition(String type, Map args) throws WorkflowException { if (SPRING.equals(type)) { return (Condition) getApplicationContext().getBean((String) args.get(BEANNAME)); } return super.getCondition(type, args); } public void setConditions(Map conditions) { this.conditions = conditions; } public FunctionProvider getFunction(String type, Map args) throws WorkflowException { if (SPRING.equals(type)) { return (FunctionProvider) getApplicationContext().getBean((String) args.get(BEANNAME)); } String className = (String) springFunctions.get(type); if (className == null) { className = (String) args.get(Workflow.CLASS_NAME); } if (className != null) { return (FunctionProvider) loadObject(className); } return super.getFunction(type, args); } public void setFunctions(Map functions) { this.springFunctions = functions; } public Register getRegister(String type, Map args) throws WorkflowException { if (SPRING.equals(type)) { return (Register) getApplicationContext().getBean((String) args.get(BEANNAME)); } return super.getRegister(type, args); } public void setRegisters(Map registers) { this.registers = registers; } public Validator getValidator(String type, Map args) throws WorkflowException { if (SPRING.equals(type)) { return (Validator) getApplicationContext().getBean((String) args.get(BEANNAME)); } return super.getValidator(type, args); } public void setValidators(Map validators) { this.validators = validators; } private ApplicationContext getApplicationContext() { return applicationContext; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?