private void updateInitSignature(int idx, State<O> succ, O out) {
        StateSignature<O> sig = init.getSignature();
        State<O> oldSucc = sig.successors.array[idx];
        if (oldSucc == succ && Objects.equals(out, sig.outputs.array[idx])) {
            return;
        }
        if (oldSucc != null) {
            oldSucc.decreaseIncoming();
        }
        sig.successors.array[idx] = succ;
        sig.outputs.array[idx] = out;
        succ.increaseIncoming();
    }
private void updateInitSignature ( int idx , State < O > succ , O out ) { StateSignature < O > sig = init . getSignature ( ) ; State < O > oldSucc = sig . successors . array [ idx ] ; if ( oldSucc == succ && Objects . equals ( out , sig . outputs . array [ idx ] ) ) { return ; } if ( oldSucc != null ) { oldSucc . decreaseIncoming ( ) ; } sig . successors . array [ idx ] = succ ; sig . outputs . array [ idx ] = out ; succ . increaseIncoming ( ) ; }
Updates the signature of the initial state, changing both the successor state and the output symbol.

@param idx
the transition index to change
@param succ
the new successor state
@param out
the output symbol