class IntermediateFolderUtils {

    @NonNull
    public IncrementalTransformInput computeIncrementalInputFromFolder() {
        final IncrementalTransformInput input = new IntermediateTransformInput(rootFolder);

        for (SubStream subStream : subStreams) {
            if (subStream.getFormat() == Format.DIRECTORY) {
                input.addFolderInput(
                        new MutableDirectoryInput(
                                subStream.getName(),
                                new File(rootFolder, subStream.getFilename()),
                                subStream.getTypes(),
                                subStream.getScopes()));

            } else {
                input.addJarInput(
                        new QualifiedContentImpl(
                                subStream.getName(),
                                new File(rootFolder, subStream.getFilename()),
                                subStream.getTypes(),
                                subStream.getScopes()));
            }
        }

        return input;
    }

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

}