/** * Identifies a matching rule provider. * * @param invocSequence * {@link InvocationSequenceData} instance providing the evaluation context. * @param ruleProviders * list of provider candidates. * @param <E> * the type of the {@link IMatchingRuleProvider} instance. * @return one selected rule provider if any matches, otherwise null. */ private <E extends IMatchingRuleProvider> E identify(InvocationSequenceData invocSequence, List<E> ruleProviders) { for (E ruleProvider : ruleProviders) { boolean ruleMatches = ruleProvider.getMatchingRuleExpression().evaluate(invocSequence, cachedDataService); if (ruleMatches) { return ruleProvider; } } return null; }
/** * {@inheritDoc} */ @Override public void commit(boolean onSave) { if (onSave) { dirty = false; } if (null != ruleProvider) { AbstractExpression expression = constructMatchingRuleExpression(); ruleProvider.setMatchingRuleExpression(expression); } }
/** * {@inheritDoc} */ @Override public void initContent(IMatchingRuleProvider ruleProvider) { this.ruleProvider = ruleProvider; setEditable(ruleProvider.isChangeable()); boolean wasDirty = isDirty(); AbstractExpression expression = ruleProvider.getMatchingRuleExpression(); boolean isAdvanced = expression.isAdvanced(); selectView(isAdvanced); if (wasDirty) { markDirty(); } if ((expression instanceof BooleanExpression) && !((BooleanExpression) expression).isValue()) { OrExpression orExpression = new OrExpression(); orExpression.setAdvanced(isAdvanced); ruleProvider.setMatchingRuleExpression(orExpression); } rulesView.initContent(ruleProvider); }
/** * {@inheritDoc} */ @Override public void initContent(IMatchingRuleProvider ruleProvider) { this.ruleProvider = ruleProvider; ISelection selection = treeViewer.getSelection(); setTreeInput(ruleProvider.getMatchingRuleExpression()); treeViewer.setSelection(selection); resizeColumns(); treeValidation.executeValidation(true); }
/** * {@inheritDoc} */ @Override public void commit(boolean onSave) { if (null != ruleProvider) { AbstractExpression expression = constructMatchingRuleExpression(); ruleProvider.setMatchingRuleExpression(expression); } if (onSave) { super.commit(onSave); } }
/** * * {@inheritDoc} */ @Override public void initContent(IMatchingRuleProvider ruleProvider) { initializationPhase = true; this.ruleProvider = ruleProvider; reset(); AbstractExpression matchingRuleExpression = ruleProvider.getMatchingRuleExpression(); if (canShowRule(matchingRuleExpression)) { for (AbstractExpression expression : ((OrExpression) matchingRuleExpression).getOperands()) { addNewRuleEditingElement(expression); } commit(false); } layoutAndReflow(); initializationPhase = false; listValidation.executeValidation(true); }