class IntermediateFolderUtils {

    @NonNull
    public TransformInput computeNonIncrementalInputFromFolder() {
        final List<JarInput> jarInputs = Lists.newArrayList();
        final List<DirectoryInput> directoryInputs = Lists.newArrayList();

        for (SubStream subStream : subStreams) {
            if (subStream.getFormat() == Format.DIRECTORY) {
                directoryInputs.add(
                        new ImmutableDirectoryInput(
                                subStream.getName(),
                                new File(rootFolder, subStream.getFilename()),
                                subStream.getTypes(),
                                subStream.getScopes()));

            } else {
                jarInputs.add(
                        new ImmutableJarInput(
                                subStream.getName(),
                                new File(rootFolder, subStream.getFilename()),
                                Status.NOTCHANGED,
                                subStream.getTypes(),
                                subStream.getScopes()));
            }
        }

        return new ImmutableTransformInput(jarInputs, directoryInputs, rootFolder);
    }

    public  IntermediateFolderUtils(
            @NonNull File rootFolder,
            @NonNull Set<ContentType> types,
            @NonNull Set<? super Scope> scopes);

}