33 lines
		
	
	
		
			836 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			836 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
@startuml
 | 
						|
package com.iluwatar.halfsynchalfasync {
 | 
						|
  class App {
 | 
						|
    - LOGGER : Logger {static}
 | 
						|
    + App()
 | 
						|
    - ap(i : long) : long {static}
 | 
						|
    + main(args : String[]) {static}
 | 
						|
  }
 | 
						|
  ~class ArithmeticSumTask {
 | 
						|
    - numberOfElements : long
 | 
						|
    + ArithmeticSumTask(numberOfElements : long)
 | 
						|
    + call() : Long
 | 
						|
    + onError(throwable : Throwable)
 | 
						|
    + onPostCall(result : Long)
 | 
						|
    + onPreCall()
 | 
						|
  }
 | 
						|
  interface AsyncTask<O> {
 | 
						|
    + call() : O {abstract}
 | 
						|
    + onError(Throwable) {abstract}
 | 
						|
    + onPostCall(O) {abstract}
 | 
						|
    + onPreCall() {abstract}
 | 
						|
  }
 | 
						|
  class AsynchronousService {
 | 
						|
    - LOGGER : Logger {static}
 | 
						|
    - service : ExecutorService
 | 
						|
    + AsynchronousService(workQueue : BlockingQueue<Runnable>)
 | 
						|
    + close()
 | 
						|
    + execute(task : AsyncTask<T>)
 | 
						|
  }
 | 
						|
}
 | 
						|
ArithmeticSumTask ..+ App
 | 
						|
ArithmeticSumTask ..|> AsyncTask 
 | 
						|
@enduml |