36 lines
		
	
	
		
			890 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
		
			890 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | @startuml | ||
|  | package com.iluwatar.monad { | ||
|  |   class App { | ||
|  |     - LOGGER : Logger {static} | ||
|  |     + App() | ||
|  |     + main(args : String[]) {static} | ||
|  |   } | ||
|  |   enum Sex { | ||
|  |     + FEMALE {static} | ||
|  |     + MALE {static} | ||
|  |     + valueOf(name : String) : Sex {static} | ||
|  |     + values() : Sex[] {static} | ||
|  |   } | ||
|  |   class User { | ||
|  |     - age : int | ||
|  |     - email : String | ||
|  |     - name : String | ||
|  |     - sex : Sex | ||
|  |     + User(name : String, age : int, sex : Sex, email : String) | ||
|  |     + getAge() : int | ||
|  |     + getEmail() : String | ||
|  |     + getName() : String | ||
|  |     + getSex() : Sex | ||
|  |   } | ||
|  |   class Validator<T> { | ||
|  |     - exceptions : List<Throwable> | ||
|  |     - obj : T | ||
|  |     - Validator<T>(obj : T) | ||
|  |     + get() : T | ||
|  |     + of(t : T) : Validator<T> {static} | ||
|  |     + validate(projection : Function<T, U>, validation : Predicate<U>, message : String) : Validator<T> | ||
|  |     + validate(validation : Predicate<T>, message : String) : Validator<T> | ||
|  |   } | ||
|  | } | ||
|  | User -->  "-sex" Sex | ||
|  | @enduml |