@startuml

skinparam svgLinkTarget _parent
skinparam linetype ortho
set namespaceSeparator none
class "<b><size:14>ListUI</b>\n<size:10>eapli.framework.presentation.console" as eapli.framework.presentation.console.ListUI  [[../../../../eapli/framework/presentation/console/ListUI.html{eapli.framework.presentation.console.ListUI}]] {
#Iterable<T> source
#Supplier<Iterable> elementSupplier
#Visitor<T> printer
#String theElementName
#String theHeader
+ListUI(Iterable<T> source,Visitor<T> printer,String elementName,String header)
+ListUI(Supplier<Iterable> elementSupplier,Visitor<T> printer,String elementName,String header)
+String listHeader()
#Iterable<T> elements()
#Visitor<T> elementPrinter()
#String elementName()
}



interface "<b><size:14>Visitor<T></b>\n<size:10>eapli.framework.visitor" as eapli.framework.visitor.VisitorObject <<FunctionalInterface>> [[../../../../eapli/framework/visitor/Visitor.html{eapli.framework.visitor.Visitor}]] #lightgrey {
}

hide eapli.framework.visitor.VisitorObject fields
hide eapli.framework.visitor.VisitorObject methods

eapli.framework.presentation.console.ListUI -->  "printer" eapli.framework.visitor.VisitorObject

class "<b><size:14>Object</b>\n<size:10>java.lang" as java.lang.Object  #lightgrey {
}

hide java.lang.Object fields
hide java.lang.Object methods

eapli.framework.presentation.console.ListUI ..> java.lang.Object

class "<b><size:14>AbstractListUI<T></b>\n<size:10>eapli.framework.presentation.console" as eapli.framework.presentation.console.AbstractListUIObject  [[../../../../eapli/framework/presentation/console/AbstractListUI.html{eapli.framework.presentation.console.AbstractListUI}]] {
}

hide eapli.framework.presentation.console.AbstractListUIObject fields
hide eapli.framework.presentation.console.AbstractListUIObject methods

eapli.framework.presentation.console.ListUI --|> eapli.framework.presentation.console.AbstractListUIObject


@enduml
