ArrangementCompositeMatchCondition (final ArrangementMatchCondition original) { final ArrangementCompositeMatchCondition composite = new ArrangementCompositeMatchCondition(); original.invite(new ArrangementMatchConditionVisitor() { @Override public void visit(@NotNull ArrangementAtomMatchCondition condition) { if (!ArrangementUtil.isAliasedCondition(condition)) { composite.addOperand(condition); } } @Override public void visit(@NotNull ArrangementCompositeMatchCondition condition) { for (ArrangementMatchCondition c : condition.getOperands()) { c.invite(this); } } }); return composite; }