class BuildInfoService {

    public BuildInfo getBuildInfo(final Module module) {
        final Builder[] result = {builderCache.getBuilder(module)};
        if (result[0] == null || !result[0].isBuilt()) {
            ((BuildServiceImpl) buildService).build(module,
                                                    builder -> result[0] = builder);
        }
        return new BuildInfoImpl(result[0]);
    }

    public  BuildInfoService();
    @Inject public  BuildInfoService(BuildService buildService,
                            LRUBuilderCache builderCache);

}