2026-03-18 16:45:42 +01:00
|
|
|
@startuml
|
|
|
|
|
|
|
|
|
|
namespace ecoparasite {
|
|
|
|
|
|
|
|
|
|
class Application {
|
2026-04-08 15:55:47 +02:00
|
|
|
+ {static} main
|
2026-03-18 16:45:42 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
namespace ecoparasite.input {
|
|
|
|
|
|
|
|
|
|
class InputFactory {
|
|
|
|
|
- {static} String DATA_FOLDER
|
|
|
|
|
+ {static} String buildDataPath()
|
|
|
|
|
+ {static} RawData readData()
|
|
|
|
|
- {static} RawData createRawData()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class RawData {
|
|
|
|
|
- ArrayList<ArrayList<String>> data
|
|
|
|
|
+ RawData()
|
|
|
|
|
+ ArrayList<ArrayList<String>> getData()
|
|
|
|
|
+ String toString()
|
|
|
|
|
+ HashSet<String> getColumnsNames()
|
|
|
|
|
+ HashSet<String> getDataFromColumn()
|
|
|
|
|
+ HashMap<String,String> getEntry()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
InputFactory o--> RawData
|
|
|
|
|
|
|
|
|
|
interface DataParsing {
|
2026-04-01 15:05:27 +02:00
|
|
|
+ HashSet<T> parse()
|
2026-03-18 16:45:42 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
exception InputFileException {
|
|
|
|
|
- String dataFilePath
|
|
|
|
|
+ String getMessage()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
exception RawDataOverflow {
|
|
|
|
|
- int excepted
|
|
|
|
|
- int limit
|
|
|
|
|
+ String getMessage()
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-01 15:05:27 +02:00
|
|
|
exception InvalidParsingException {
|
|
|
|
|
- int parsingId
|
|
|
|
|
- String parsingClass
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-18 16:45:42 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
namespace ecoparasite.poissons {
|
|
|
|
|
|
|
|
|
|
class Poisson {
|
2026-03-25 16:29:15 +01:00
|
|
|
- String id
|
2026-03-18 16:45:42 +01:00
|
|
|
- Double length
|
|
|
|
|
- Double weight
|
|
|
|
|
- Double infestation
|
|
|
|
|
---
|
|
|
|
|
+ Poisson()
|
|
|
|
|
.. Getters ..
|
|
|
|
|
+ String toString()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class Merlu extends Poisson implements ecoparasite.input.DataParsing {
|
|
|
|
|
+ Merlu()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class Mackerel extends Poisson implements ecoparasite.input.DataParsing {
|
|
|
|
|
+ Mackerel()
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-01 15:05:27 +02:00
|
|
|
class PartiePoisson {
|
|
|
|
|
- String name
|
|
|
|
|
- Double infestation
|
|
|
|
|
+ PartiePoisson(String name, Double infestation)
|
2026-03-18 16:45:42 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Poisson o--> PartiePoisson : # fishParts
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-01 15:05:27 +02:00
|
|
|
namespace ecoparasite.population {
|
|
|
|
|
|
|
|
|
|
class Population implements ecoparasite.input.DataParsing {
|
|
|
|
|
- String id
|
|
|
|
|
- HashMap<Integer,PopulationArgs> perYear
|
|
|
|
|
+ Population()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Population o--> PopulationArgs : - total
|
|
|
|
|
|
|
|
|
|
class PopulationArgs {
|
|
|
|
|
- int year
|
|
|
|
|
- int number
|
|
|
|
|
- Double intensity
|
|
|
|
|
- Double abondance
|
|
|
|
|
+ PopulationArgs()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PopulationArgs o--> PopulationArgInterval : - length
|
|
|
|
|
PopulationArgs o--> PopulationArgInterval : - width
|
|
|
|
|
PopulationArgs o--> PopulationArgInterval : - prevalence
|
|
|
|
|
PopulationArgs o--> PopulationArgInterval : - ic
|
|
|
|
|
|
|
|
|
|
class PopulationArgInterval {
|
|
|
|
|
- Double min
|
|
|
|
|
- Double max
|
|
|
|
|
- Double mean
|
|
|
|
|
+ PopulationArgInterval()
|
|
|
|
|
+ PopulationArgInterval()
|
|
|
|
|
+ Double transformToDouble()
|
|
|
|
|
+ {static} PopulationArgInterval fromString()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class PopulationParsing {
|
|
|
|
|
+ {static} HashSet<Population> parseParasitesPeru()
|
|
|
|
|
- {static} void applyValueForParasitesPeru()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-01 16:41:01 +02:00
|
|
|
namespace ecoparasite.completion {
|
|
|
|
|
class Completion {
|
2026-04-08 15:55:47 +02:00
|
|
|
+ {static} completeColumnsMoyenne()
|
|
|
|
|
+ {static} completeColumnsLinear()
|
2026-04-08 11:53:09 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
namespace ecoparasite.nettoyage {
|
|
|
|
|
class Nettoyage {
|
2026-04-08 15:55:47 +02:00
|
|
|
+ {static} nettoieColumns()
|
2026-04-01 16:41:01 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-08 15:55:47 +02:00
|
|
|
namespace ecoparasite.representation {
|
|
|
|
|
class ValeursXY {
|
|
|
|
|
- double x
|
|
|
|
|
- double y
|
|
|
|
|
+ {static} HashSet<ValeursXY> convertToXY()
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-03-18 16:45:42 +01:00
|
|
|
|
2026-04-08 15:55:47 +02:00
|
|
|
namespace ecoparasite.svg {
|
|
|
|
|
class SVGFactory {
|
|
|
|
|
+ {static} createSVG()
|
|
|
|
|
+ {static} createSVGCode()
|
|
|
|
|
+ {static} createFile()
|
|
|
|
|
}
|
2026-03-18 16:45:42 +01:00
|
|
|
|
2026-04-08 15:55:47 +02:00
|
|
|
class Coordonnees {
|
|
|
|
|
- double x
|
|
|
|
|
- double y
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
namespace ecoparasite.svg.elements {
|
|
|
|
|
|
|
|
|
|
class ElementsFactory {
|
|
|
|
|
+ {static} SVGAxes()
|
2026-03-18 16:45:42 +01:00
|
|
|
}
|
|
|
|
|
|
2026-04-08 15:55:47 +02:00
|
|
|
abstract class Element {
|
|
|
|
|
+ {abstract} toSVG()
|
2026-03-18 16:45:42 +01:00
|
|
|
}
|
2026-04-08 15:55:47 +02:00
|
|
|
|
|
|
|
|
Element o--> ecoparasite.svg.Coordonnees : # coordonnees
|
|
|
|
|
|
|
|
|
|
class Circle extends Element {
|
|
|
|
|
- int rayon
|
|
|
|
|
- String color
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class Line extends Element {
|
|
|
|
|
- int lineWidth
|
|
|
|
|
- String color
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class Text extends Element {
|
|
|
|
|
- String text
|
|
|
|
|
- String color
|
|
|
|
|
- int size
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Line o--> ecoparasite.svg.Coordonnees : # coordonneesB
|
2026-03-18 16:45:42 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
Exception <|-- InputFileException
|
|
|
|
|
Exception <|-- RawDataOverflow
|
|
|
|
|
|
|
|
|
|
@enduml
|