public Model createCopy() { EvaluateModel copy = new EvaluateModel(expression); super.fillCopy(copy); copy.setResult(result); copy.setResultType(resultType); return copy; }
private Action parseEvaluateAction(EvaluateModel evaluate) { FluentParserContext evaluateExpressionParserContext = new FluentParserContext().evaluate(RequestContext.class); if (StringUtils.hasText(evaluate.getResultType())) { evaluateExpressionParserContext.expectResult(toClass(evaluate.getResultType())); } Expression evaluateExpression = getLocalContext().getExpressionParser().parseExpression( evaluate.getExpression(), evaluateExpressionParserContext); Expression resultExpression = null; if (StringUtils.hasText(evaluate.getResult())) { resultExpression = getLocalContext().getExpressionParser().parseExpression(evaluate.getResult(), new FluentParserContext().evaluate(RequestContext.class)); } return new EvaluateAction(evaluateExpression, resultExpression); }
/** * Create an evaluate action model * @param expression the expression to evaluate */ public EvaluateModel(String expression) { setExpression(expression); }
private EvaluateModel parseEvaluate(Element element) { EvaluateModel evaluate = new EvaluateModel(element.getAttribute("expression")); evaluate.setResult(element.getAttribute("result")); evaluate.setResultType(element.getAttribute("result-type")); evaluate.setAttributes(parseAttributes(element)); return evaluate; }
private EvaluateModel parseEvaluate(Element element) { EvaluateModel evaluate = new EvaluateModel(element.getAttribute("expression")); evaluate.setResult(element.getAttribute("result")); evaluate.setResultType(element.getAttribute("result-type")); evaluate.addAttributes(parseAttributes(element)); return evaluate; }
public void testMergeOnStart() { FlowModel child = new FlowModel(); child.setOnStartActions(asList(new EvaluateModel("expression"), new RenderModel( "expression"), new SetModel("expression", "value"))); FlowModel parent = new FlowModel(); EvaluateModel eval = new EvaluateModel("expression"); eval.setResult("result"); parent.setOnStartActions(asList(eval, new RenderModel("expression"), new SetModel( "expression", "value"))); child.merge(parent); assertEquals(6, child.getOnStartActions().size()); assertNotNull(((EvaluateModel) child.getOnStartActions().get(0)).getResult()); }
private static void createDuoFlowStartActions(final DynamicFlowModelBuilder modelBuilder) { val starts = new ArrayList<AbstractActionModel>(); starts.add(new EvaluateModel(CasWebflowConstants.ACTION_ID_INIT_FLOW_SETUP)); modelBuilder.setOnStartActions(starts); }
public void testMerge() { ActionStateModel child = new ActionStateModel("child"); ActionStateModel parent = new ActionStateModel("parent"); LinkedList<AbstractActionModel> actions = new LinkedList<>(); EvaluateModel eval = new EvaluateModel("foo.bar"); actions.add(eval); parent.setActions(actions); parent.setSecured(new SecuredModel("secured")); child.merge(parent); assertNotNull(child.getSecured()); assertEquals("foo.bar", ((EvaluateModel) child.getActions().get(0)).getExpression()); }
private ActionResultExposer parseEvaluationActionResultExposer(EvaluateModel evaluate) { if (StringUtils.hasText(evaluate.getResult())) { Expression resultExpression = getLocalContext().getExpressionParser().parseExpression(evaluate.getResult(), new FluentParserContext().evaluate(RequestContext.class)); Class expectedResultType = null; if (StringUtils.hasText(evaluate.getResultType())) { expectedResultType = toClass(evaluate.getResultType()); } return new ActionResultExposer(resultExpression, expectedResultType, getLocalContext() .getConversionService()); } else { return null; } }
public void testNotMergeable() { EvaluateModel child = new EvaluateModel("name"); assertFalse(child.isMergeableWith(child)); }
private Action parseEvaluateAction(EvaluateModel evaluate) { String expressionString = evaluate.getExpression(); Expression expression = getLocalContext().getExpressionParser().parseExpression(expressionString, new FluentParserContext().evaluate(RequestContext.class)); return new EvaluateAction(expression, parseEvaluationActionResultExposer(evaluate)); }
private EvaluateModel parseEvaluate(Element element) { EvaluateModel evaluate = new EvaluateModel(element.getAttribute("expression")); evaluate.setResult(element.getAttribute("result")); evaluate.setResultType(element.getAttribute("result-type")); evaluate.setAttributes(parseAttributes(element)); return evaluate; }
public void testMergeOnEnd() { FlowModel child = new FlowModel(); child.setOnEndActions(asList(new EvaluateModel("expression"), new RenderModel("expression"), new SetModel("expression", "value"))); FlowModel parent = new FlowModel(); EvaluateModel eval = new EvaluateModel("expression"); eval.setResult("result"); parent.setOnEndActions(asList(eval, new RenderModel("expression"), new SetModel( "expression", "value"))); child.merge(parent); assertEquals(6, child.getOnEndActions().size()); assertNotNull(((EvaluateModel) child.getOnEndActions().get(0)).getResult()); }
private static void createDuoDoNonWebAuthenticationAction(final List<AbstractStateModel> states) { val actModel = new ActionStateModel(STATE_ID_DUO_NON_WEB_AUTHENTICATION); val actions = new LinkedList<AbstractActionModel>(); actions.add(new EvaluateModel(ACTION_DUO_NON_WEB_AUTHENTICATION_ACTION)); actModel.setActions(actions); val trans = new LinkedList<TransitionModel>(); val transModel = new TransitionModel(); transModel.setOn(CasWebflowConstants.TRANSITION_ID_SUCCESS); transModel.setTo(STATE_ID_FINALIZE_AUTHENTICATION); trans.add(transModel); actModel.setTransitions(trans); states.add(actModel); }
parent.setTransitions(transitions); EvaluateModel eval = new EvaluateModel("foo.bar"); LinkedList<AbstractActionModel> actions = new LinkedList<>(); actions.add(eval); assertEquals("foo", child.getBinder().getBindings().get(0).getProperty()); assertEquals("bar", child.getTransitions().get(0).getTo()); assertEquals("foo.bar", ((EvaluateModel) child.getOnEntryActions().get(0)).getExpression()); assertEquals("foo.bar", ((EvaluateModel) child.getOnExitActions().get(0)).getExpression()); assertEquals("foo.bar", ((EvaluateModel) child.getOnRenderActions().get(0)).getExpression()); assertEquals("foo", child.getVars().get(0).getName()); assertEquals("foo", child.getExceptionHandlers().get(0).getBean());
public Model createCopy() { EvaluateModel copy = new EvaluateModel(expression); super.fillCopy(copy); copy.setResult(result); copy.setResultType(resultType); return copy; }
private Action parseEvaluateAction(EvaluateModel evaluate) { FluentParserContext evaluateExpressionParserContext = new FluentParserContext().evaluate(RequestContext.class); if (StringUtils.hasText(evaluate.getResultType())) { evaluateExpressionParserContext.expectResult(toClass(evaluate.getResultType())); } Expression evaluateExpression = getLocalContext().getExpressionParser().parseExpression( evaluate.getExpression(), evaluateExpressionParserContext); Expression resultExpression = null; if (StringUtils.hasText(evaluate.getResult())) { resultExpression = getLocalContext().getExpressionParser().parseExpression(evaluate.getResult(), new FluentParserContext().evaluate(RequestContext.class)); } return new EvaluateAction(evaluateExpression, resultExpression); }
private static void createDuoFinalizeAuthenticationAction(final List<AbstractStateModel> states) { val actModel = new ActionStateModel(STATE_ID_FINALIZE_AUTHENTICATION); val actions = new LinkedList<AbstractActionModel>(); actions.add(new EvaluateModel(ACTION_DUO_AUTHENTICATION_WEBFLOW)); actModel.setActions(actions); val trans = new LinkedList<TransitionModel>(); val transModel = new TransitionModel(); transModel.setOn(CasWebflowConstants.TRANSITION_ID_SUCCESS); transModel.setTo(CasWebflowConstants.TRANSITION_ID_SUCCESS); trans.add(transModel); actModel.setTransitions(trans); states.add(actModel); }
/** * Create an evaluate action model * @param expression the expression to evaluate */ public EvaluateModel(String expression) { setExpression(expression); }
public void testEvaluateActionWithResultType() throws Exception { EvaluateModel evaluateModel = new EvaluateModel("testBean.getIntegers()"); evaluateModel.setResult("flowScope.stringArray"); evaluateModel.setResultType("java.lang.String[]"); model.setOnStartActions(asList(evaluateModel)); model.setStates(asList(new ViewStateModel("view"))); Flow flow = getFlow(model); AnnotatedAction action = (AnnotatedAction) flow.getStartActionList().get(0); MockRequestContext context = new MockRequestContext(flow); context.getFlowScope().put("testBean", new TestBean()); action.execute(context); String[] expected = (String[]) context.getFlowScope().get("stringArray"); assertEquals("1", expected[0]); assertEquals("2", expected[1]); }