Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public abstract class AbstractSimpleDistributionAssemblingService<DC extends DistributionChannel,
- DU extends DistributionUnit<DC>,
- AC extends AssemblingContext,
- A extends Assembly<DC>,
- AAR extends AbstractAssemblingResult<DC>,
- AARB extends AbstractAssemblingResultBuilder<DC, AAR>
- >
- implements DistributionAssemblingService<DC, AC, DU, AAR> {
- protected final Logger logger = LoggerFactory.getLogger(getClass());
- @Resource
- private AssemblingErrorBuilder assemblingErrorBuilder;
- @Override public AAR assemble(final DU distributionUnit, final AC context) {
- Assert.notNull(distributionUnit, "The distribution unit should not be null.");
- Assert.notNull(context, "The assembling context should not be null.");
- Stopwatch stopwatch = new Stopwatch();
- stopwatch.start();
- AARB assemblingResultBuilder = buildAssemblingResultBuilder(distributionUnit);
- try {
- A assembly = getAssemblingAssemblyService().build(context, distributionUnit);
- assemblingResultBuilder.assembly(assembly);
- } catch (AssemblingAssemblyException e) {
- AssemblingError assemblingError = assemblingErrorBuilder.buildError(e);
- assemblingResultBuilder.addAssemblingError(assemblingError);
- }
- stopwatch.stop();
- logger.trace("Assembling elapsed [{}] ms.", stopwatch.elapsed(TimeUnit.MILLISECONDS));
- return assemblingResultBuilder.build();
- }
- protected abstract <ARB extends AbstractAssemblingResultBuilder> ARB buildAssemblingResultBuilder(
- final DU distributionUnit);
- protected abstract AssemblingAssemblyService<DC, AC, DU, A> getAssemblingAssemblyService();
- }
Add Comment
Please, Sign In to add comment