@Override
    public Collection<Class<? extends Saga>> scanForSagas() {
        Set<Class<? extends Saga>> sagaTypes = reflections.getSubTypesOf(Saga.class);

        // separate searches in case saga-lib is in embedded jar when performing directory scanning
        Set<Class<? extends AbstractSaga>> abstractSagaTypes = reflections.getSubTypesOf(AbstractSaga.class);
        Set<Class<? extends AbstractSingleEventSaga>> singleEventSagaTypes = reflections.getSubTypesOf(AbstractSingleEventSaga.class);

        Set<Class<? extends Saga>> foundTypes = Sets.union(sagaTypes, abstractSagaTypes);
        Set<Class<? extends Saga>> mergedSet = Sets.union(foundTypes, copy(singleEventSagaTypes));

        return removeAbstractTypes(mergedSet);
    }
@ Override public Collection < Class < ? extends Saga > > scanForSagas ( ) { Set < Class < ? extends Saga > > sagaTypes = reflections . getSubTypesOf ( Saga . class ) ; Set < Class < ? extends AbstractSaga > > abstractSagaTypes = reflections . getSubTypesOf ( AbstractSaga . class ) ; Set < Class < ? extends AbstractSingleEventSaga > > singleEventSagaTypes = reflections . getSubTypesOf ( AbstractSingleEventSaga . class ) ; Set < Class < ? extends Saga > > foundTypes = Sets . union ( sagaTypes , abstractSagaTypes ) ; Set < Class < ? extends Saga > > mergedSet = Sets . union ( foundTypes , copy ( singleEventSagaTypes ) ) ; return removeAbstractTypes ( mergedSet ) ; }
{@inheritDoc}