public static <S1, I1, T1, S2, I2, T2, SP2, TP2> Mapping<S1, S2> rawCopy(TSTraversalMethod method,
                                                                             TransitionSystem<S1, ? super I1, T1> in,
                                                                             int limit,
                                                                             Collection<? extends I1> inputs,
                                                                             MutableAutomaton<S2, I2, T2, ? super SP2, ? super TP2> out,
                                                                             Function<? super I1, ? extends I2> inputsMapping,
                                                                             Function<? super S1, ? extends SP2> spMapping,
                                                                             Function<? super T1, ? extends TP2> tpMapping,
                                                                             Predicate<? super S1> stateFilter,
                                                                             TransitionPredicate<? super S1, ? super I1, ? super T1> transFilter) {

        final Function<? super S1, ? extends SP2> safeSpMapping = FunctionsUtil.safeDefault(spMapping);
        final Function<? super T1, ? extends TP2> safeTpMapping = FunctionsUtil.safeDefault(tpMapping);
        final Predicate<? super S1> safeStateFilter = FunctionsUtil.safeToTrue(stateFilter);
        final TransitionPredicate<? super S1, ? super I1, ? super T1> safeTransFilter =
                TransitionPredicates.safePred(transFilter, true);

        TSCopyVisitor<S1, I1, T1, S2, I2, T2, SP2, TP2> vis = new TSCopyVisitor<>(in,
                                                                                  out,
                                                                                  inputsMapping,
                                                                                  safeSpMapping,
                                                                                  safeTpMapping,
                                                                                  safeStateFilter,
                                                                                  safeTransFilter);

        method.traverse(in, limit, inputs, vis);
        return vis.getStateMapping();
    }
public static < S1 , I1 , T1 , S2 , I2 , T2 , SP2 , TP2 > Mapping < S1 , S2 > rawCopy ( TSTraversalMethod method , TransitionSystem < S1 , ? super I1 , T1 > in , int limit , Collection < ? extends I1 > inputs , MutableAutomaton < S2 , I2 , T2 , ? super SP2 , ? super TP2 > out , Function < ? super I1 , ? extends I2 > inputsMapping , Function < ? super S1 , ? extends SP2 > spMapping , Function < ? super T1 , ? extends TP2 > tpMapping , Predicate < ? super S1 > stateFilter , TransitionPredicate < ? super S1 , ? super I1 , ? super T1 > transFilter ) { final Function < ? super S1 , ? extends SP2 > safeSpMapping = FunctionsUtil . safeDefault ( spMapping ) ; final Function < ? super T1 , ? extends TP2 > safeTpMapping = FunctionsUtil . safeDefault ( tpMapping ) ; final Predicate < ? super S1 > safeStateFilter = FunctionsUtil . safeToTrue ( stateFilter ) ; final TransitionPredicate < ? super S1 , ? super I1 , ? super T1 > safeTransFilter = TransitionPredicates . safePred ( transFilter , true ) ; TSCopyVisitor < S1 , I1 , T1 , S2 , I2 , T2 , SP2 , TP2 > vis = new TSCopyVisitor < > ( in , out , inputsMapping , safeSpMapping , safeTpMapping , safeStateFilter , safeTransFilter ) ; method . traverse ( in , limit , inputs , vis ) ; return vis . getStateMapping ( ) ; }
Copies an {@link TransitionSystem} to a {@link MutableAutomaton} with possibly heterogeneous input alphabets and
state and transition properties.

@param method
the traversal method to use
@param in
the input transition system
@param limit
the traversal limit, a value less than 0 means no limit
@param inputs
the inputs to consider
@param out
the output automaton
@param inputsMapping
the transformation for input symbols
@param spMapping
the function for obtaining state properties
@param tpMapping
the function for obtaining transition properties
@param stateFilter
the filter predicate for states
@param transFilter
the filter predicate for transitions

@return a mapping from old to new states