Guest User

Untitled

a guest
Apr 21st, 2018
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. public abstract class AbstractSimpleDistributionAssemblingService<DC extends DistributionChannel,
  2. DU extends DistributionUnit<DC>,
  3. AC extends AssemblingContext,
  4. A extends Assembly<DC>,
  5. AAR extends AbstractAssemblingResult<DC>,
  6. AARB extends AbstractAssemblingResultBuilder<DC, AAR>
  7. >
  8. implements DistributionAssemblingService<DC, AC, DU, AAR> {
  9.  
  10. protected final Logger logger = LoggerFactory.getLogger(getClass());
  11.  
  12. @Resource
  13. private AssemblingErrorBuilder assemblingErrorBuilder;
  14.  
  15. @Override public AAR assemble(final DU distributionUnit, final AC context) {
  16. Assert.notNull(distributionUnit, "The distribution unit should not be null.");
  17. Assert.notNull(context, "The assembling context should not be null.");
  18.  
  19. Stopwatch stopwatch = new Stopwatch();
  20. stopwatch.start();
  21. AARB assemblingResultBuilder = buildAssemblingResultBuilder(distributionUnit);
  22. try {
  23. A assembly = getAssemblingAssemblyService().build(context, distributionUnit);
  24. assemblingResultBuilder.assembly(assembly);
  25. } catch (AssemblingAssemblyException e) {
  26. AssemblingError assemblingError = assemblingErrorBuilder.buildError(e);
  27. assemblingResultBuilder.addAssemblingError(assemblingError);
  28. }
  29. stopwatch.stop();
  30. logger.trace("Assembling elapsed [{}] ms.", stopwatch.elapsed(TimeUnit.MILLISECONDS));
  31.  
  32. return assemblingResultBuilder.build();
  33. }
  34.  
  35. protected abstract <ARB extends AbstractAssemblingResultBuilder> ARB buildAssemblingResultBuilder(
  36. final DU distributionUnit);
  37.  
  38. protected abstract AssemblingAssemblyService<DC, AC, DU, A> getAssemblingAssemblyService();
  39. }
Add Comment
Please, Sign In to add comment