public List<String> findPaths() { if (!finder.isAnnotationPresent(UsingPaths.class)) { return new ArrayList<String>(); } String searchIn = finder.getAnnotatedValue(UsingPaths.class, String.class, "searchIn"); List<String> includes = finder.getAnnotatedValues(UsingPaths.class, String.class, "includes"); List<String> excludes = finder.getAnnotatedValues(UsingPaths.class, String.class, "excludes"); return new StoryFinder().findPaths(searchIn, includes, excludes); }
@SuppressWarnings("unchecked") public Embedder buildEmbedder() { if (!finder.isAnnotationPresent(UsingEmbedder.class)) { return new Embedder(); } boolean batch = control(finder, "batch"); boolean skip = control(finder, "skip"); boolean generateViewAfterStories = control(finder, "generateViewAfterStories"); boolean ignoreFailureInStories = control(finder, "ignoreFailureInStories"); boolean ignoreFailureInView = control(finder, "ignoreFailureInView"); long storyTimeoutInSecs = finder.getAnnotatedValue(UsingEmbedder.class, Long.class, "storyTimeoutInSecs"); int threads = finder.getAnnotatedValue(UsingEmbedder.class, Integer.class, "threads"); Configuration configuration = buildConfiguration(); List<CandidateSteps> candidateSteps = buildCandidateSteps(configuration); Embedder embedder = instanceOf( Embedder.class, (Class<? extends Embedder>) finder.getAnnotatedValue(UsingEmbedder.class, Class.class, "embedder")); embedder .embedderControls() .doBatch(batch) .doSkip(skip) .doGenerateViewAfterStories(generateViewAfterStories) .doIgnoreFailureInStories(ignoreFailureInStories) .doIgnoreFailureInView(ignoreFailureInView) .useStoryTimeoutInSecs(storyTimeoutInSecs) .useThreads(threads); embedder.useConfiguration(configuration); embedder.useCandidateSteps(candidateSteps); List<String> metaFilters = finder.getAnnotatedValues(UsingEmbedder.class, String.class, "metaFilters"); if (!metaFilters.isEmpty()) { embedder.useMetaFilters(metaFilters); } return embedder; }
@SuppressWarnings("unchecked") private <T> Class<T> elementImplementation(AnnotationFinder finder, String name) { return finder.getAnnotatedValue(Configure.class, Class.class, name); }
private boolean control(AnnotationFinder finder, String name) { return finder.getAnnotatedValue(UsingEmbedder.class, Boolean.class, name); }