1 16 package org.springframework.webflow.engine.support; 17 18 import org.springframework.binding.expression.Expression; 19 import org.springframework.binding.expression.support.StaticExpression; 20 import org.springframework.util.Assert; 21 import org.springframework.webflow.engine.Flow; 22 import org.springframework.webflow.engine.State; 23 import org.springframework.webflow.engine.TargetStateResolver; 24 import org.springframework.webflow.engine.Transition; 25 import org.springframework.webflow.execution.RequestContext; 26 27 33 public class DefaultTargetStateResolver implements TargetStateResolver { 34 35 38 private Expression targetStateIdExpression; 39 40 45 public DefaultTargetStateResolver(String targetStateId) { 46 this(new StaticExpression(targetStateId)); 47 } 48 49 53 public DefaultTargetStateResolver(Expression targetStateIdExpression) { 54 Assert.notNull(targetStateIdExpression, "The target state id expression is required"); 55 this.targetStateIdExpression = targetStateIdExpression; 56 } 57 58 public State resolveTargetState(Transition transition, State sourceState, RequestContext context) { 59 String stateId = String.valueOf(targetStateIdExpression.evaluate(context, null)); 60 return ((Flow)context.getActiveFlow()).getStateInstance(stateId); 61 } 62 63 public String toString() { 64 return targetStateIdExpression.toString(); 65 } 66 } | Popular Tags |