| 
									
										
										
										
											2016-08-30 13:29:12 +02:00
										 |  |  | @startuml | 
					
						
							|  |  |  | package com.iluwatar.monad { | 
					
						
							|  |  |  |   class App { | 
					
						
							| 
									
										
										
										
											2016-11-26 12:51:06 +01:00
										 |  |  |     - LOGGER : Logger {static} | 
					
						
							| 
									
										
										
										
											2016-08-30 13:29:12 +02:00
										 |  |  |     + App() | 
					
						
							|  |  |  |     + main(args : String[]) {static} | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2016-11-26 12:51:06 +01:00
										 |  |  |   enum Sex { | 
					
						
							|  |  |  |     + FEMALE {static} | 
					
						
							|  |  |  |     + MALE {static} | 
					
						
							|  |  |  |     + valueOf(name : String) : Sex {static} | 
					
						
							|  |  |  |     + values() : Sex[] {static} | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2016-08-30 13:29:12 +02:00
										 |  |  |   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 | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2016-11-26 12:51:06 +01:00
										 |  |  |   class Validator<T> { | 
					
						
							|  |  |  |     - exceptions : List<Throwable> | 
					
						
							|  |  |  |     - t : T | 
					
						
							|  |  |  |     - Validator<T>(t : 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> | 
					
						
							| 
									
										
										
										
											2016-08-30 13:29:12 +02:00
										 |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | User -->  "-sex" Sex | 
					
						
							|  |  |  | @enduml |