@Override public Set<Term> getGenerableTerms() { Set<Term> result = new HashSet<>(); for (Instruction instruction: rules.getInstructions()) { result.addAll(instruction.getGenerableTerms()); } return result; }
protected void applySequence(PositionSequence<Term> sequence, boolean addBoundaries) { PositionSequence<InputSequenceElement> sequenceForLookUp = addBoundaries ? addBoundaries(sequence) : termSequenceToInputSequence(sequence); boolean isDebug = Boolean.TRUE.equals(context.get(CONTEXT_KEY_DEBUG_ENABLED)); List<String> actionsDebugInfo = (List<String>) context.get(CONTEXT_KEY_DEBUG_DATA); // prepare debug info context object if requested if (isDebug && actionsDebugInfo == null) { actionsDebugInfo = new LinkedList<>(); context.put(CONTEXT_KEY_DEBUG_DATA, actionsDebugInfo); } for (Action action : rules.getRewriteActions(sequenceForLookUp)) { if (isDebug) { actionsDebugInfo.add(action.toString()); } for (Instructions instructions : action.getInstructions()) { for (Instruction instruction : instructions) { instruction.apply(sequence, action.getTermMatches(), action.getStartPosition(), action.getEndPosition(), expandedQuery, context); } } } }
@Override public Set<Term> getGenerableTerms() { // REVISIT: return Iterator? Limit number of results? final Set<Term> result = new HashSet<Term>(); for (final Instruction instruction: rules.getInstructions()) { result.addAll(instruction.getGenerableTerms()); } return result; }