88 lines
2.2 KiB
Plaintext
88 lines
2.2 KiB
Plaintext
@startuml
|
|
package com.iluwatar.intercepting.filter {
|
|
abstract class AbstractFilter {
|
|
- next : Filter
|
|
+ AbstractFilter()
|
|
+ AbstractFilter(next : Filter)
|
|
+ execute(order : Order) : String
|
|
+ getLast() : Filter
|
|
+ getNext() : Filter
|
|
+ setNext(filter : Filter)
|
|
}
|
|
class AddressFilter {
|
|
+ AddressFilter()
|
|
+ execute(order : Order) : String
|
|
}
|
|
class App {
|
|
+ App()
|
|
+ main(args : String[]) {static}
|
|
}
|
|
class ContactFilter {
|
|
+ ContactFilter()
|
|
+ execute(order : Order) : String
|
|
}
|
|
class DepositFilter {
|
|
+ DepositFilter()
|
|
+ execute(order : Order) : String
|
|
}
|
|
interface Filter {
|
|
+ execute(Order) : String {abstract}
|
|
+ getLast() : Filter {abstract}
|
|
+ getNext() : Filter {abstract}
|
|
+ setNext(Filter) {abstract}
|
|
}
|
|
class FilterChain {
|
|
- chain : Filter
|
|
+ FilterChain()
|
|
+ addFilter(filter : Filter)
|
|
+ execute(order : Order) : String
|
|
}
|
|
class FilterManager {
|
|
- filterChain : FilterChain
|
|
+ FilterManager()
|
|
+ addFilter(filter : Filter)
|
|
+ filterRequest(order : Order) : String
|
|
}
|
|
class NameFilter {
|
|
+ NameFilter()
|
|
+ execute(order : Order) : String
|
|
}
|
|
class Order {
|
|
- address : String
|
|
- contactNumber : String
|
|
- depositNumber : String
|
|
- name : String
|
|
- orderItem : String
|
|
+ Order()
|
|
+ Order(name : String, contactNumber : String, address : String, depositNumber : String, order : String)
|
|
+ getAddress() : String
|
|
+ getContactNumber() : String
|
|
+ getDepositNumber() : String
|
|
+ getName() : String
|
|
+ getOrderItem() : String
|
|
+ setAddress(address : String)
|
|
+ setContactNumber(contactNumber : String)
|
|
+ setDepositNumber(depositNumber : String)
|
|
+ setName(name : String)
|
|
+ setOrderItem(order : String)
|
|
}
|
|
class OrderFilter {
|
|
+ OrderFilter()
|
|
+ execute(order : Order) : String
|
|
}
|
|
~class DListener {
|
|
~ DListener()
|
|
+ actionPerformed(e : ActionEvent)
|
|
}
|
|
}
|
|
AbstractFilter --> "-next" Filter
|
|
DListener --+ Target
|
|
FilterManager --> "-filterChain" FilterChain
|
|
FilterChain --> "-chain" Filter
|
|
AbstractFilter ..|> Filter
|
|
AddressFilter --|> AbstractFilter
|
|
ContactFilter --|> AbstractFilter
|
|
DepositFilter --|> AbstractFilter
|
|
NameFilter --|> AbstractFilter
|
|
OrderFilter --|> AbstractFilter
|
|
@enduml |