private boolean isSelfIgnore(final StateTransition<T> edge) { return isEquivalentState(edge.getTargetState(), currentState) && edge.getAction() == StateTransitionAction.IGNORE; } }
private State<T> findFinalStateAfterProceed( ConditionContext context, State<T> state, T event) { final Stack<State<T>> statesToCheck = new Stack<>(); statesToCheck.push(state); try { while (!statesToCheck.isEmpty()) { final State<T> currentState = statesToCheck.pop(); for (StateTransition<T> transition : currentState.getStateTransitions()) { if (transition.getAction() == StateTransitionAction.PROCEED && checkFilterCondition(context, transition.getCondition(), event)) { if (transition.getTargetState().isFinal()) { return transition.getTargetState(); } else { statesToCheck.push(transition.getTargetState()); } } } } } catch (Exception e) { throw new FlinkRuntimeException("Failure happened in filter function.", e); } return null; }
if (transition.getTargetState().isFinal()) { return true; } else { statesToCheck.push(transition.getTargetState());
states.push(stateTransition.getTargetState()); break; case IGNORE:
private State<T> copy(final State<T> state) { final State<T> copyOfState = createState( NFAStateNameHandler.getOriginalNameFromInternal(state.getName()), state.getStateType()); for (StateTransition<T> tStateTransition : state.getStateTransitions()) { copyOfState.addStateTransition( tStateTransition.getAction(), tStateTransition.getTargetState().equals(tStateTransition.getSourceState()) ? copyOfState : tStateTransition.getTargetState(), tStateTransition.getCondition()); } return copyOfState; }
private <T> Set<Tuple2<String, StateTransitionAction>> unfoldTransitions(final State<T> state) { final Set<Tuple2<String, StateTransitionAction>> transitions = new HashSet<>(); for (StateTransition<T> transition : state.getStateTransitions()) { transitions.add(Tuple2.of( transition.getTargetState().getName(), transition.getAction())); } return transitions; }
State<T> targetState = tStateTransition.getTargetState(); boolean remove = false; if (targetState.isStop()) { targetState = copyWithoutTransitiveNots(tStateTransition.getTargetState()); copyOfSink.addStateTransition( tStateTransition.getAction(), tStateTransition.getTargetState().equals(tStateTransition.getSourceState()) ? copyOfSink : tStateTransition.getTargetState(), tStateTransition.getCondition() );
if (!isStartState(computationState)) { final DeweyNumber version; if (isEquivalentState(edge.getTargetState(), getState(computationState))) { sharedBufferAccessor, resultingComputationStates, edge.getTargetState(), computationState.getPreviousBufferEntry(), version, final State<T> nextState = edge.getTargetState(); final State<T> currentState = edge.getSourceState();
private boolean isSelfIgnore(final StateTransition<T> edge) { return isEquivalentState(edge.getTargetState(), currentState) && edge.getAction() == StateTransitionAction.IGNORE; } }
private boolean isSelfIgnore(final StateTransition<T> edge) { return isEquivalentState(edge.getTargetState(), currentState) && edge.getAction() == StateTransitionAction.IGNORE; } }
private boolean isSelfIgnore(final StateTransition<T> edge) { return isEquivalentState(edge.getTargetState(), currentState) && edge.getAction() == StateTransitionAction.IGNORE; } }
private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException { ois.defaultReadObject(); //Backward compatibility. Previous version of StateTransition did not have source state if (!stateTransitions.isEmpty() && stateTransitions.iterator().next().getSourceState() == null) { final List<StateTransition<T>> tmp = new ArrayList<>(); tmp.addAll(this.stateTransitions); this.stateTransitions.clear(); for (StateTransition<T> transition : tmp) { addStateTransition(transition.getAction(), transition.getTargetState(), transition.getCondition()); } } } }
private State<T> findFinalStateAfterProceed(State<T> state, T event, ComputationState<T> computationState) { final Stack<State<T>> statesToCheck = new Stack<>(); statesToCheck.push(state); try { while (!statesToCheck.isEmpty()) { final State<T> currentState = statesToCheck.pop(); for (StateTransition<T> transition : currentState.getStateTransitions()) { if (transition.getAction() == StateTransitionAction.PROCEED && checkFilterCondition(computationState, transition.getCondition(), event)) { if (transition.getTargetState().isFinal()) { return transition.getTargetState(); } else { statesToCheck.push(transition.getTargetState()); } } } } } catch (Exception e) { throw new RuntimeException("Failure happened in filter function.", e); } return null; }
private State<T> findFinalStateAfterProceed( ConditionContext<T> context, State<T> state, T event) { final Stack<State<T>> statesToCheck = new Stack<>(); statesToCheck.push(state); try { while (!statesToCheck.isEmpty()) { final State<T> currentState = statesToCheck.pop(); for (StateTransition<T> transition : currentState.getStateTransitions()) { if (transition.getAction() == StateTransitionAction.PROCEED && checkFilterCondition(context, transition.getCondition(), event)) { if (transition.getTargetState().isFinal()) { return transition.getTargetState(); } else { statesToCheck.push(transition.getTargetState()); } } } } } catch (Exception e) { throw new FlinkRuntimeException("Failure happened in filter function.", e); } return null; }
private State<T> findFinalStateAfterProceed( ConditionContext<T> context, State<T> state, T event) { final Stack<State<T>> statesToCheck = new Stack<>(); statesToCheck.push(state); try { while (!statesToCheck.isEmpty()) { final State<T> currentState = statesToCheck.pop(); for (StateTransition<T> transition : currentState.getStateTransitions()) { if (transition.getAction() == StateTransitionAction.PROCEED && checkFilterCondition(context, transition.getCondition(), event)) { if (transition.getTargetState().isFinal()) { return transition.getTargetState(); } else { statesToCheck.push(transition.getTargetState()); } } } } } catch (Exception e) { throw new FlinkRuntimeException("Failure happened in filter function.", e); } return null; }
if (transition.getTargetState().isFinal()) { return true; } else { statesToCheck.push(transition.getTargetState());
states.push(stateTransition.getTargetState()); break; case IGNORE:
private State<T> copy(final State<T> state) { final State<T> copyOfState = createState( NFAStateNameHandler.getOriginalNameFromInternal(state.getName()), state.getStateType()); for (StateTransition<T> tStateTransition : state.getStateTransitions()) { copyOfState.addStateTransition( tStateTransition.getAction(), tStateTransition.getTargetState().equals(tStateTransition.getSourceState()) ? copyOfState : tStateTransition.getTargetState(), tStateTransition.getCondition()); } return copyOfState; }
private State<T> copy(final State<T> state) { final State<T> copyOfState = createState( NFAStateNameHandler.getOriginalNameFromInternal(state.getName()), state.getStateType()); for (StateTransition<T> tStateTransition : state.getStateTransitions()) { copyOfState.addStateTransition( tStateTransition.getAction(), tStateTransition.getTargetState().equals(tStateTransition.getSourceState()) ? copyOfState : tStateTransition.getTargetState(), tStateTransition.getCondition()); } return copyOfState; }
private void serializeStates(Set<State<T>> states, DataOutputView out) throws IOException { TypeSerializer<String> nameSerializer = StringSerializer.INSTANCE; TypeSerializer<State.StateType> stateTypeSerializer = new EnumSerializer<>(State.StateType.class); TypeSerializer<StateTransitionAction> actionSerializer = new EnumSerializer<>(StateTransitionAction.class); out.writeInt(states.size()); for (State<T> state: states) { nameSerializer.serialize(state.getName(), out); stateTypeSerializer.serialize(state.getStateType(), out); } for (State<T> state: states) { nameSerializer.serialize(state.getName(), out); out.writeInt(state.getStateTransitions().size()); for (StateTransition<T> transition : state.getStateTransitions()) { nameSerializer.serialize(transition.getSourceState().getName(), out); nameSerializer.serialize(transition.getTargetState().getName(), out); actionSerializer.serialize(transition.getAction(), out); serializeCondition(transition.getCondition(), out); } } }