@Override public boolean canCompose(AtomicWhereClause signatureClause, AtomicWhereClause clause) { return ((PropertySetComposition) signatureClause.getCompositionBehaviour()).group == ((PropertySetComposition) clause.getCompositionBehaviour()).group && matches(signatureClause) && matches(clause) && signatureClause .getInputVariables() .iterator() .next() .getObject() .isCompatible(clause.getInputVariables().iterator().next().getObject()); }
@Override public boolean matches(AtomicWhereClause clause) { return clause.getVisualizationClauseList().getWords().size() == 6 && clause.getVisualizationClauseList().getWords().get(1) instanceof InputVariable && clause.getInputVariables().iterator().next().getObject().isTable() && clause.getVisualizationClauseList().getWords().get(2) instanceof FixedString && (clause.getVisualizationClauseList().getWords().get(3) instanceof FixedString || clause.getVisualizationClauseList().getWords().get(3) instanceof OutputVariable) && clause.getVisualizationClauseList().getWords().get(4) instanceof OperatorConstant && clause.getVisualizationClauseList().getWords().get(5) instanceof Constant; }
@Override public List<ConfigurableWord> getKeyWords(AtomicWhereClause clause) { return clause.getVisualizationClauseList().getWords().subList(3, 4); }