@Override public BillOfMaterials getBillOfMaterial() { return BillOfMaterials.of(jongoQuery); } };
@Override public BillOfMaterials getBillOfMaterial() { return new BillOfMaterials(ImmutableSet.<Factory.Query<?>>of( env )); }
private Deque<BuildingBox<?>> buildBuildingBoxesClosure(BuildingBox<?> buildingBox) { // first we traverse the dependencies graph of this buildingbox, and create a building box for each node Deque<BuildingBox<?>> dependenciesWithNoIncomingEdges = new LinkedList<>(); Map<Name<?>, BuildingBox<?>> dependenciesByName = new HashMap<>(); Queue<BuildingBox<?>> dependenciesToSatisfy = new LinkedList<BuildingBox<?>>(asList(buildingBox)); while (!dependenciesToSatisfy.isEmpty()) { BuildingBox buildingBox1 = dependenciesToSatisfy.poll(); ImmutableSet<Query<?>> queries = buildingBox1.engine.getBillOfMaterial().getQueries(); for (Query<?> query : queries) { buildBuildingBoxClosureForQuery(dependenciesByName, dependenciesToSatisfy, buildingBox1, query); } if (buildingBox1.names.isEmpty()) { dependenciesWithNoIncomingEdges.add(buildingBox1); } } // then we do a topological sort of this graph - see http://en.wikipedia.org/wiki/Topological_sorting Deque<BuildingBox<?>> dependencies = new ArrayDeque<>(); while (!dependenciesWithNoIncomingEdges.isEmpty()) { BuildingBox n = dependenciesWithNoIncomingEdges.removeFirst(); dependencies.addLast(n); while (!n.predecessorsToSort.isEmpty()) { BuildingBox m = (Factory.BuildingBox) n.predecessorsToSort.removeFirst(); m.depsToSort.remove(n); if (m.depsToSort.isEmpty()) { dependenciesWithNoIncomingEdges.add(m); } } } return dependencies; }
ImmutableSet<Query<?>> bomQueries = engine.getBillOfMaterial().getQueries(); if (!bomQueries.isEmpty()) { sb.append(" BOM:\n");
@Override public BillOfMaterials getBillOfMaterial() { return BillOfMaterials.of(mapperQuery); } }));
@Override public BillOfMaterials getBillOfMaterial() { return new BillOfMaterials(ImmutableSet.<Factory.Query<?>>of(appSettings)); }
private void satisfyBoms(Deque<BuildingBox<?>> dependencies) { for (BuildingBox<?> buildingBox = dependencies.pollFirst(); buildingBox != null; buildingBox = dependencies.pollFirst()) { if (buildingBox.engine.getBillOfMaterial().getQueries().isEmpty()) { buildingBox.satisfiedBOM = new SatisfiedBOM(buildingBox.engine.getBillOfMaterial(), ImmutableMultimap.<Query<?>, NamedComponent<?>>of()); } else { ImmutableMultimap.Builder<Query<?>, NamedComponent<?>> materials = ImmutableListMultimap.builder(); for (Query<?> key : buildingBox.engine.getBillOfMaterial().getQueries()) { Collection<Name<?>> names = buildingBox.names.get(key); Set<NamedComponent<?>> components = Sets.newTreeSet(NAMED_COMPONENT_COMPARATOR); for (Name<?> name : names) { uncheckedAddIfPresent(components, buildAndStore(getDependencyBuildingBox(buildingBox.deps, name))); } materials.putAll(key, components); } buildingBox.satisfiedBOM = new SatisfiedBOM(buildingBox.engine.getBillOfMaterial(), materials.build()); } } }
@Override public BillOfMaterials getBillOfMaterial() { return BillOfMaterials.of(restxConfigQuery); } });
public static BillOfMaterials of(Factory.Query<?>... query) { return new BillOfMaterials(ImmutableSet.copyOf(query)); }
private <T> void checkSatisfy(Name<T> name) { BillOfMaterials billOfMaterial = getBillOfMaterialsFor(name); UnsatisfiedDependencies notSatisfied = UnsatisfiedDependencies.of(); for (Query<?> query : billOfMaterial.getQueries()) { try { query.bind(this).checkSatisfy(); } catch (UnsatisfiedDependenciesException e) { notSatisfied = notSatisfied.concat(e.getUnsatisfiedDependencies().prepend(SatisfiedQuery.of(Query.byName(name), name))); } } if (!notSatisfied.isEmpty()) { throw notSatisfied.raise(); } }
@Override public BillOfMaterials getBillOfMaterial() { return BillOfMaterials.of(configSupplierQuery, stringsQuery); } };
@Override public BillOfMaterials getBillOfMaterial() { return new BillOfMaterials(ImmutableSet.<Factory.Query<?>>of(recordedSpecRepo, storageSettings, securityManager, permissionFactory)); }
@Override public BillOfMaterials getBillOfMaterial() { return BillOfMaterials.of(); }
@Override public BillOfMaterials getBillOfMaterial() { return new BillOfMaterials(ImmutableSet.<Factory.Query<?>>of(recordedSpecRepo, storageSettings, securityManager, permissionFactory)); }
@Override public BillOfMaterials getBillOfMaterial() { return BillOfMaterials.of(jongoQuery); } };
@Override public BillOfMaterials getBillOfMaterial() { return new BillOfMaterials(ImmutableSet.<Factory.Query<?>>of(appSettings)); }
@Override public BillOfMaterials getBillOfMaterial() { return BillOfMaterials.of(mapperQuery); } }));
public BillOfMaterials addQueries(Iterable<Factory.Query<?>> queries) { return new BillOfMaterials(ImmutableSet.<Factory.Query<?>>builder() .addAll(bill).addAll(queries).build()); } }
@Override public BillOfMaterials getBillOfMaterial() { return BillOfMaterials.of(query); } });
@Override public BillOfMaterials getBillOfMaterial() { return BillOfMaterials.of(filters, routeFilters, routers, routes); }