36 lines
		
	
	
		
			962 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			962 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
@startuml
 | 
						|
package com.iluwatar.pipeline {
 | 
						|
  class App {
 | 
						|
    + App()
 | 
						|
    + main(args : String[]) {static}
 | 
						|
  }
 | 
						|
  ~class ConvertToCharArrayHandler {
 | 
						|
    - LOGGER : Logger {static}
 | 
						|
    ~ ConvertToCharArrayHandler()
 | 
						|
    + process(input : String) : char[]
 | 
						|
  }
 | 
						|
  ~interface Handler<I, O> {
 | 
						|
    + process(I) : O {abstract}
 | 
						|
  }
 | 
						|
  ~class Pipeline<I, O> {
 | 
						|
    - currentHandler : Handler<I, O>
 | 
						|
    ~ Pipeline<I, O>(currentHandler : Handler<I, O>)
 | 
						|
    ~ addHandler(newHandler : Handler<O, K>) : Pipeline<I, K>
 | 
						|
    ~ execute(input : I) : O
 | 
						|
  }
 | 
						|
  ~class RemoveAlphabetsHandler {
 | 
						|
    - LOGGER : Logger {static}
 | 
						|
    ~ RemoveAlphabetsHandler()
 | 
						|
    + process(input : String) : String
 | 
						|
  }
 | 
						|
  ~class RemoveDigitsHandler {
 | 
						|
    - LOGGER : Logger {static}
 | 
						|
    ~ RemoveDigitsHandler()
 | 
						|
    + process(input : String) : String
 | 
						|
  }
 | 
						|
}
 | 
						|
Pipeline -->  "-currentHandler" Handler
 | 
						|
ConvertToCharArrayHandler ..|> Handler 
 | 
						|
RemoveAlphabetsHandler ..|> Handler 
 | 
						|
RemoveDigitsHandler ..|> Handler 
 | 
						|
@enduml |