@startuml package "jmri.jmrix" #DDDDDD { interface PortAdapter interface SerialPortAdapter interface NetworkPortAdapter PortAdapter <|-- SerialPortAdapter PortAdapter <|-- NetworkPortAdapter abstract class AbstractPortController PortAdapter <|-- AbstractPortController abstract class AbstractSerialPortController abstract class AbstractNetworkPortController AbstractPortController <|-- AbstractSerialPortController AbstractPortController <|-- AbstractNetworkPortController SerialPortAdapter <|-- AbstractSerialPortController NetworkPortAdapter <|-- AbstractNetworkPortController } package "jmri.jmrix.loconet" #DDDDDD { AbstractSerialPortController <|-- LnPortController AbstractNetworkPortController <|-- LnNetworkPortController } package "jmri.jmrix.loconet.locobuffer" #DDDDDD { LnPortController <|-- LocoBufferAdapter SerialPortAdapter <|-- LocoBufferAdapter } @enduml