.put("MetricRegistryMachine", new SingleNameFactoryMachine<>(10000, new NoDepsMachineEngine<MetricRegistry>(METRICS_NAME, 10000, BoundlessComponentBox.FACTORY) { @Override
@Override public AutoCloseable recordIn(final Map<String, Given> givens) { final Tape tape = new Tape(givens); Factory.LocalMachines.threadLocal().addMachine( new SingleNameFactoryMachine<>(0, new NoDepsMachineEngine<ComponentCustomizerEngine>( Name.of(ComponentCustomizerEngine.class, "UUIDGeneratorSequenceSupplier"), BoundlessComponentBox.FACTORY) { @Override protected ComponentCustomizerEngine doNewComponent(SatisfiedBOM satisfiedBOM) { return new SingleComponentClassCustomizerEngine<UUIDGenerator>(0, UUIDGenerator.class) { @Override public NamedComponent<UUIDGenerator> customize(final NamedComponent<UUIDGenerator> namedComponent) { return new NamedComponent<>(namedComponent.getName(), new UUIDGenerator() { @Override public String doGenerate() { String uuid = namedComponent.getComponent().doGenerate(); tape.recordGeneratedId(uuid); return uuid; } }); } }; } })); return tape; }
@Override public AutoCloseable recordIn(final Map<String, Given> givens) { final Tape tape = new Tape(givens); Factory.LocalMachines.threadLocal().addMachine( new SingleNameFactoryMachine<>(0, new NoDepsMachineEngine<ComponentCustomizerEngine>( Name.of(ComponentCustomizerEngine.class, "UUIDGeneratorSequenceSupplier"), BoundlessComponentBox.FACTORY) { @Override protected ComponentCustomizerEngine doNewComponent(SatisfiedBOM satisfiedBOM) { return new SingleComponentClassCustomizerEngine<UUIDGenerator>(0, UUIDGenerator.class) { @Override public NamedComponent<UUIDGenerator> customize(final NamedComponent<UUIDGenerator> namedComponent) { return new NamedComponent<>(namedComponent.getName(), new UUIDGenerator() { @Override public String doGenerate() { String uuid = namedComponent.getComponent().doGenerate(); tape.recordGeneratedId(uuid); return uuid; } }); } }; } })); return tape; }
new SingleNameFactoryMachine<>(0, new StdMachineEngine<ComponentCustomizerEngine>( Name.of(ComponentCustomizerEngine.class, "JongoCollectionSequenceSupplierOf" + given.getCollection()),
@Override public AutoCloseable recordIn(Map<String, Given> givens) { final Tape tape = new Tape(givens); final Factory.Query<Mapper> mapperQuery = Factory.Query.byName(Name.of(Mapper.class, "Mapper")); Factory.LocalMachines.threadLocal().addMachine( new SingleNameFactoryMachine<>(0, new StdMachineEngine<ComponentCustomizerEngine>( Name.of(ComponentCustomizerEngine.class, "JongoCollectionSequenceSupplier"), BoundlessComponentBox.FACTORY) { @Override protected ComponentCustomizerEngine doNewComponent(SatisfiedBOM satisfiedBOM) { final Mapper mapper = satisfiedBOM.getOne(mapperQuery).get().getComponent(); final ObjectIdUpdater objectIdUpdater = mapper.getObjectIdUpdater(); return new SingleComponentClassCustomizerEngine<JongoCollection>(0, JongoCollection.class) { @Override public NamedComponent<JongoCollection> customize(NamedComponent<JongoCollection> namedComponent) { final JongoCollection collection = namedComponent.getComponent(); return new NamedComponent<>(namedComponent.getName(), new SequencingJongoCollection(tape, collection, mapper, objectIdUpdater)); } }; } @Override public BillOfMaterials getBillOfMaterial() { return BillOfMaterials.of(mapperQuery); } })); return tape; }
@Override public AutoCloseable recordIn(Map<String, Given> givens) { final Tape tape = new Tape(givens); final Factory.Query<Mapper> mapperQuery = Factory.Query.byName(Name.of(Mapper.class, "Mapper")); Factory.LocalMachines.threadLocal().addMachine( new SingleNameFactoryMachine<>(0, new StdMachineEngine<ComponentCustomizerEngine>( Name.of(ComponentCustomizerEngine.class, "JongoCollectionSequenceSupplier"), BoundlessComponentBox.FACTORY) { @Override protected ComponentCustomizerEngine doNewComponent(SatisfiedBOM satisfiedBOM) { final Mapper mapper = satisfiedBOM.getOne(mapperQuery).get().getComponent(); final ObjectIdUpdater objectIdUpdater = mapper.getObjectIdUpdater(); return new SingleComponentClassCustomizerEngine<JongoCollection>(0, JongoCollection.class) { @Override public NamedComponent<JongoCollection> customize(NamedComponent<JongoCollection> namedComponent) { final JongoCollection collection = namedComponent.getComponent(); return new NamedComponent<>(namedComponent.getName(), new SequencingJongoCollection(tape, collection, mapper, objectIdUpdater)); } }; } @Override public BillOfMaterials getBillOfMaterial() { return BillOfMaterials.of(mapperQuery); } })); return tape; }