Added fixes after review. Changed example pattern application to threat detection domain

This commit is contained in:
Michal Krzywanski
2020-08-22 17:53:09 +02:00
parent 905b5dc6d8
commit 61a819aab8
18 changed files with 572 additions and 336 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

After

Width:  |  Height:  |  Size: 128 KiB

View File

@ -4,129 +4,93 @@ package com.iluwatar.filterer.domain {
+ by(Predicate<? super E>) : G {abstract}
}
}
package com.iluwatar.filterer.issue {
interface Issue {
+ endOffset() : int {abstract}
+ startOffset() : int {abstract}
+ type() : IssueType {abstract}
package com.iluwatar.filterer {
class App {
- LOGGER : Logger {static}
+ App()
- filteringSimpleProbableThreats() {static}
- filteringSimpleThreats() {static}
+ main(args : String[]) {static}
}
interface IssueAwareText {
+ filtered() : Filterer<? extends IssueAwareText, ? extends Issue> {abstract}
+ issues() : List<? extends Issue> {abstract}
+ text() : String {abstract}
}
package com.iluwatar.filterer.threat {
interface ProbabilisticThreatAwareSystem {
+ filtered() : Filterer<? extends ProbabilisticThreatAwareSystem, ? extends ProbableThreat> {abstract}
+ threats() : List<? extends ProbableThreat> {abstract}
}
class IssuePosition {
- endOffset : int
- startOffset : int
- IssuePosition(startOffset : int, endOffset : int)
~ endOffset() : int
+ equals(o : Object) : boolean
+ hashCode() : int
+ of(startOffset : int, endOffset : int) : IssuePosition {static}
~ startOffset() : int
}
~enum IssueType {
+ GRAMMAR {static}
+ SPELLING {static}
+ valueOf(name : String) : IssueType {static}
+ values() : IssueType[] {static}
}
interface IssueWiseText {
+ filtered() : Filterer<? extends IssueWiseText, ? extends Issue> {abstract}
+ issues() : List<? extends Issue> {abstract}
+ text() : String {abstract}
}
interface ProbabilisticIssueAwareText {
+ filtered() : Filterer<? extends ProbabilisticIssueAwareText, ? extends ProbableIssue> {abstract}
+ issues() : List<? extends ProbableIssue> {abstract}
}
interface ProbabilisticIssueWiseText {
+ filtered() : Filterer<? extends ProbabilisticIssueWiseText, ? extends ProbableIssue> {abstract}
+ issues() : List<? extends ProbableIssue> {abstract}
}
interface ProbableIssue {
interface ProbableThreat {
+ probability() : double {abstract}
}
class SimpleIssue {
- issuePosition : IssuePosition
- issueType : IssueType
~ SimpleIssue(issuePosition : IssuePosition, issueType : IssueType)
+ endOffset() : int
class SimpleProbabilisticThreatAwareSystem {
- systemId : String
- threats : ImmutableList<ProbableThreat>
+ SimpleProbabilisticThreatAwareSystem(systemId : String, threats : List<ProbableThreat>)
+ equals(o : Object) : boolean
+ filtered() : Filterer<? extends ProbabilisticThreatAwareSystem, ? extends ProbableThreat>
- filteredGroup(predicate : Predicate<? super ProbableThreat>) : ProbabilisticThreatAwareSystem
- filteredItems(predicate : Predicate<? super ProbableThreat>) : List<ProbableThreat>
+ hashCode() : int
+ startOffset() : int
+ type() : IssueType
+ systemId() : String
+ threats() : List<? extends ProbableThreat>
+ toString() : String
}
class SimpleIssueAwareText {
- issues : ImmutableList<Issue>
- text : String
~ SimpleIssueAwareText(text : String, issues : List<Issue>)
+ equals(o : Object) : boolean
+ filtered() : Filterer<? extends IssueAwareText, ? extends Issue>
- filteredGroup(predicate : Predicate<? super Issue>) : IssueAwareText
- filteredItems(predicate : Predicate<? super Issue>) : ImmutableList<Issue>
+ hashCode() : int
+ issues() : List<? extends Issue>
+ text() : String
}
class SimpleIssueWiseText {
- issues : ImmutableList<Issue>
- text : String
+ SimpleIssueWiseText(text : String, issues : List<Issue>)
+ equals(o : Object) : boolean
+ filtered() : Filterer<? extends IssueWiseText, ? extends Issue>
- filteredGroup(predicate : Predicate<? super Issue>) : IssueWiseText
- filteredItems(predicate : Predicate<? super Issue>) : ImmutableList<Issue>
+ hashCode() : int
+ issues() : List<? extends Issue>
+ text() : String
}
class SimpleProbabilisticIssueAwareText {
- issues : ImmutableList<ProbableIssue>
- text : String
~ SimpleProbabilisticIssueAwareText(text : String, issues : List<ProbableIssue>)
+ equals(o : Object) : boolean
+ filtered() : Filterer<? extends ProbabilisticIssueAwareText, ? extends ProbableIssue>
- filteredGroup(predicate : Predicate<? super ProbableIssue>) : ProbabilisticIssueAwareText
- filteredItems(predicate : Predicate<? super ProbableIssue>) : ImmutableList<ProbableIssue>
+ hashCode() : int
+ issues() : List<? extends ProbableIssue>
+ text() : String
}
class SimpleProbabilisticIssueWiseText {
- issues : ImmutableList<ProbableIssue>
- text : String
+ SimpleProbabilisticIssueWiseText(text : String, issues : List<ProbableIssue>)
+ equals(o : Object) : boolean
+ filtered() : Filterer<? extends ProbabilisticIssueWiseText, ? extends ProbableIssue>
- filteredGroup(predicate : Predicate<? super ProbableIssue>) : ProbabilisticIssueWiseText
- filteredItems(predicate : Predicate<? super ProbableIssue>) : ImmutableList<ProbableIssue>
+ hashCode() : int
+ issues() : List<? extends ProbableIssue>
+ text() : String
}
class SimpleProbableIssue {
class SimpleProbableThreat {
- probability : double
~ SimpleProbableIssue(issuePosition : IssuePosition, issueType : IssueType, probability : double)
+ SimpleProbableThreat(name : String, id : int, threatType : ThreatType, probability : double)
+ equals(o : Object) : boolean
+ hashCode() : int
+ probability() : double
+ toString() : String
}
class SimpleThreat {
- id : int
- name : String
- threatType : ThreatType
+ SimpleThreat(threatType : ThreatType, id : int, name : String)
+ id() : int
+ name() : String
+ toString() : String
+ type() : ThreatType
}
class SimpleThreatAwareSystem {
- issues : ImmutableList<Threat>
- systemId : String
+ SimpleThreatAwareSystem(systemId : String, issues : List<Threat>)
+ equals(o : Object) : boolean
+ filtered() : Filterer<? extends ThreatAwareSystem, ? extends Threat>
- filteredGroup(predicate : Predicate<? super Threat>) : ThreatAwareSystem
- filteredItems(predicate : Predicate<? super Threat>) : List<Threat>
+ hashCode() : int
+ systemId() : String
+ threats() : List<? extends Threat>
+ toString() : String
}
interface Threat {
+ id() : int {abstract}
+ name() : String {abstract}
+ type() : ThreatType {abstract}
}
interface ThreatAwareSystem {
+ filtered() : Filterer<? extends ThreatAwareSystem, ? extends Threat> {abstract}
+ systemId() : String {abstract}
+ threats() : List<? extends Threat> {abstract}
}
enum ThreatType {
+ ROOTKIT {static}
+ TROJAN {static}
+ WORM {static}
+ valueOf(name : String) : ThreatType {static}
+ values() : ThreatType[] {static}
}
}
SimpleIssueWiseText --> "-issues" Issue
SimpleProbabilisticIssueAwareText --> "-issues" ProbableIssue
SimpleIssue --> "-issueType" IssueType
SimpleIssueAwareText --> "-issues" Issue
SimpleProbabilisticIssueWiseText --> "-issues" ProbableIssue
SimpleIssue --> "-issuePosition" IssuePosition
ProbabilisticIssueAwareText --|> IssueAwareText
ProbabilisticIssueWiseText --|> IssueWiseText
ProbableIssue --|> Issue
SimpleIssue ..|> Issue
SimpleIssueAwareText ..|> IssueAwareText
SimpleIssueWiseText ..|> IssueWiseText
SimpleProbabilisticIssueAwareText ..|> ProbabilisticIssueAwareText
SimpleProbabilisticIssueWiseText ..|> ProbabilisticIssueWiseText
SimpleProbableIssue ..|> ProbableIssue
SimpleProbableIssue --|> SimpleIssue
SimpleThreatAwareSystem --> "-issues" Threat
SimpleThreat --> "-threatType" ThreatType
SimpleProbabilisticThreatAwareSystem --> "-threats" ProbableThreat
ProbabilisticThreatAwareSystem --|> ThreatAwareSystem
ProbableThreat --|> Threat
SimpleProbabilisticThreatAwareSystem ..|> ProbabilisticThreatAwareSystem
SimpleProbableThreat ..|> ProbableThreat
SimpleProbableThreat --|> SimpleThreat
SimpleThreat ..|> Threat
SimpleThreatAwareSystem ..|> ThreatAwareSystem
@enduml