/** * Constructs a {@link AbstractExpression} instance from the contents of this element controls. * * @return Returns a {@link AbstractExpression} instance. */ private AbstractExpression constructMatchingRuleExpression() { AbstractExpression expression = (null == rootExpression) ? new BooleanExpression(false) : rootExpression; expression.setAdvanced(true); return expression; }
/** * {@inheritDoc} */ @Override public boolean evaluate(InvocationSequenceData invocSequence, ICachedDataService cachedDataService) { return isValue(); }
/** * Constructor. * * @param value * boolean value to use for evaluation * @param advanced * indicates whether this expression has been created in advanced mode. */ public BooleanExpression(boolean value, boolean advanced) { this.value = value; this.setAdvanced(advanced); }
/** * Constructs a {@link AbstractExpression} instance from the contents of this element controls. * * @return Returns a {@link AbstractExpression} instance. */ private AbstractExpression constructMatchingRuleExpression() { List<AbstractExpression> activeExpressions = new ArrayList<AbstractExpression>(); for (AbstractRuleEditingElement<?> ruleComposite : ruleElements) { AbstractExpression expression = ruleComposite.getExpression(); if (null != expression) { activeExpressions.add(expression); } } AbstractExpression matchingRuleExpression = null; if (!activeExpressions.isEmpty()) { AbstractExpression[] expressions = new AbstractExpression[activeExpressions.size()]; activeExpressions.toArray(expressions); matchingRuleExpression = new OrExpression(expressions); } if (null == matchingRuleExpression) { matchingRuleExpression = new BooleanExpression(false); } matchingRuleExpression.setAdvanced(false); return matchingRuleExpression; }
/** * {@inheritDoc} */ @Override protected void executeSpecificInitialization(BooleanExpression expression) { if (expression.isValue()) { valueComboBox.select(0); } else { valueComboBox.select(1); } }
/** * Creates an {@link AbstractExpression} for the given {@link BooleanExpressionType}. * * @param type * {@link BooleanExpressionType} determining the specific {@link AbstractExpression}. * @return an {@link AbstractExpression}. */ private static AbstractExpression createBooleanExpression(BooleanExpressionType type) { switch (type) { case AND: return new AndExpression(); case OR: return new OrExpression(); case NOT: return new NotExpression(); case BOOLEAN: return new BooleanExpression(false); default: throw new RuntimeException("Unsupported type!"); } }
/** * {@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); }
@Test public void addTwo() { NotExpression orExpression = new NotExpression(); BooleanExpression firstExpr = new BooleanExpression(); orExpression.addOperand(firstExpr); orExpression.addOperand(new BooleanExpression()); assertThat(orExpression.getOperands(), hasSize(1)); assertThat(orExpression.getOperands(), contains((AbstractExpression) firstExpr)); }
@Test public void addTwo() { OrExpression orExpression = new OrExpression(); orExpression.addOperand(new BooleanExpression()); orExpression.addOperand(new BooleanExpression()); assertThat(orExpression.getOperands(), hasSize(2)); }
@Test public void add() { OrExpression orExpression = new OrExpression(); orExpression.addOperand(new BooleanExpression()); assertThat(orExpression.getOperands(), hasSize(1)); }
@Test public void add() { NotExpression orExpression = new NotExpression(); orExpression.addOperand(new BooleanExpression()); assertThat(orExpression.getOperands(), hasSize(1)); }
@Test public void addDuplicate() { NotExpression orExpression = new NotExpression(); BooleanExpression operand = new BooleanExpression(); orExpression.addOperand(operand); orExpression.addOperand(operand); assertThat(orExpression.getOperands(), hasSize(1)); } }
@Test public void addDuplicate() { OrExpression orExpression = new OrExpression(); BooleanExpression operand = new BooleanExpression(); orExpression.addOperand(operand); orExpression.addOperand(operand); assertThat(orExpression.getOperands(), hasSize(1)); } }
/** * {@inheritDoc} */ @Override public boolean performFinish() { String name = newItemWizardPage.getName(); String description = newItemWizardPage.getDescription(); int insertBeforeIndex = newItemWizardPage.getInsertedBeforeIndex(); AbstractExpression matchingRuleExpression = new BooleanExpression(false); newBusinessTransaction = new BusinessTransactionDefinition(name); if (StringUtils.isNotBlank(description)) { newBusinessTransaction.setDescription(description); } newBusinessTransaction.setMatchingRuleExpression(matchingRuleExpression); try { application.addBusinessTransactionDefinition(newBusinessTransaction, insertBeforeIndex); } catch (BusinessException e) { InspectIT.getDefault().createErrorDialog( "Adding the business transaction definition '" + newBusinessTransaction.getBusinessTransactionDefinitionName() + "' failed due to the following exception.", e, -1); return false; } return true; }