@Override
    public <C extends Document & HasEnabled> BUILDER with(
            final Class<C> type,
            final Consumer<C> consumer
    ) {
        injectorBuilder.before(resolved(ProjectComponent.class)
            .withExecute(projComp -> 
                DocumentDbUtil.traverseOver(projComp.getProject(), type)
                    .forEach(consumer)
            )
        );
        
        return self();
    }
This abstract class is implemented by classes that can build a
{@link Speedment} application.

@param <APP> the type that is being built
@param <BUILDER> the (self) type of the AbstractApplicationBuilder

@author Per Minborg
@author Emil Forslund
@since 2.0.0
runtime-parent/runtime-application/src/main/java/com/speedment/runtime/application/AbstractApplicationBuilder.java