@Override public Iterable<Name<?>> listNames() { return Iterables.filter(original.listNames(), new Predicate<Name<?>>() { @Override public boolean apply(Name<?> name) { return !isFiltered(name); } }); }
@Override public <T> void checkIn(ComponentBox<T> componentBox, SatisfiedBOM satisfiedBOM) { original.checkIn(componentBox, satisfiedBOM); }
private <T> Optional<NamedComponent<T>> findComponent(Name<T> name) { for (Warehouse provider : providers) { Optional<NamedComponent<T>> componentOptional = provider.checkOut(name); if (componentOptional.isPresent()) { return componentOptional; } } return Optional.absent(); }
@Override public void handle(RestxRequestMatch match, RestxRequest req, RestxResponse resp, RestxContext ctx) throws IOException { securityManager.check(req, match, permissionFactory.hasRole(AdminModule.RESTX_ADMIN_ROLE)); resp.setContentType("application/json"); List<String> nodesCode = Lists.newArrayList(); List<String> linksCode = Lists.newArrayList(); for (Name<?> name : warehouse.listNames()) { nodesCode.add(String.format("{ \"id\": \"%s\", \"name\": \"%s\", \"type\": \"%s\" }", name.asId(), name.getSimpleName(), getType(name))); Iterable<Name<?>> deps = warehouse.listDependencies(name); for (Name<?> dep : deps) { linksCode.add(String.format("{ \"origin\": \"%s\", \"target\": \"%s\" }", name.asId(), dep.asId())); } } PrintWriter writer = resp.getWriter(); writer.println("{"); writer.println("\"nodes\": ["); Joiner.on(",\n").appendTo(writer, nodesCode); writer.println("\n],"); writer.println("\"links\": ["); Joiner.on(",\n").appendTo(writer, linksCode); writer.println("\n]"); writer.println("}"); }
@Override public Iterable<Name<?>> listDependencies(Name name) { if (isFiltered(name)) { return Collections.emptySet(); } return original.listDependencies(name); }
if (!warehouse.getProviders().isEmpty()) { machineBuilder .put("WarehouseProvidersMachine", new WarehouseProvidersMachine(warehouse.getProviders())); this.id = String.format("%03d-%s(%d)", ID.incrementAndGet(), warehouse.getId(), machinesByBuilder.size()); this.warehouse = checkNotNull(warehouse);
@Override public String getId() { return original.getId(); }
@Override public ImmutableList<Warehouse> getProviders() { return original.getProviders(); }
@Override public <T> Optional<StoredBox<T>> getStoredBox(Name<T> name) { if (isFiltered(name)) { return Optional.absent(); } return original.getStoredBox(name); }
@Override public void close() { original.close(); }
@Override public Iterable<Name<?>> listDependencies(Name name) { StoredBox storedBox = boxes.get(name); if (storedBox != null) { Collection<Name<?>> deps = Lists.newArrayList(); for (NamedComponent<? extends Object> namedComponent : storedBox.satisfiedBOM.getAllComponents()) { deps.add(namedComponent.getName()); } return deps; } else { for (Warehouse provider : providers) { Iterable<Name<?>> deps = provider.listDependencies(name); if (!Iterables.isEmpty(deps)) { return deps; } } return Collections.emptySet(); } }
public StdWarehouse(ImmutableList<Warehouse> providers) { this.providers = providers; StringBuilder sb = new StringBuilder(); for (Warehouse provider : providers) { sb.append("<<").append(provider.getId()); } this.id = String.format("%03d%s", ID.incrementAndGet(), sb.toString()); }
public Factory concat(FactoryMachine machine) { Multimap<String, FactoryMachine> machines = ArrayListMultimap.create(); machines.putAll(machinesByBuilder); machines.removeAll("FactoryMachine"); machines.removeAll("MetricRegistryMachine"); machines.removeAll("WarehouseProvidersMachine"); machines.put("IndividualMachines", machine); return new Factory(usedServiceLoader, machines, customizerEngines, new StdWarehouse(warehouse.getProviders())); }
private <T> BillOfMaterials findBomFor(Name<T> name) { for (Warehouse provider : providers) { Optional<Warehouse.StoredBox<T>> storedBox = provider.getStoredBox(name); if (storedBox.isPresent()) { return storedBox.get().getSatisfiedBOM().getBom(); } } throw new IllegalArgumentException("name not found " + name); }
public void close() { warehouse.close(); }
@Override @SuppressWarnings("unchecked") public boolean canBuild(Name<?> name) { for (Warehouse provider : providers) { if (Iterables.tryFind(provider.listNames(), (Predicate<? super Name<?>>) Predicates.equalTo(name)).isPresent()) { return true; } } return false; }
@Override public <T> Optional<NamedComponent<T>> checkOut(Name<T> name) { if (isFiltered(name)) { return Optional.absent(); } return original.checkOut(name); }
@Override public Iterable<Name<?>> listNames() { Set<Name<?>> names = new LinkedHashSet<>(); names.addAll(boxes.keySet()); for (Warehouse provider : providers) { Iterables.addAll(names, provider.listNames()); } return ImmutableSet.copyOf(names); }
@Override @SuppressWarnings("unchecked") public <T> Optional<NamedComponent<T>> checkOut(Name<T> name) { StoredBox<T> storedBox = (StoredBox<T>) boxes.get(name); if (storedBox != null) { return storedBox.box.pick(); } for (Warehouse provider : providers) { Optional<NamedComponent<T>> component = provider.checkOut(name); if (component.isPresent()) { return component; } } return Optional.absent(); }