Sequence diagrams¶
- Reading Data
- Converting Data
- Visualizing Data
1. Reading Data¶
We validate the MoleculeData object when we initialize it.
sequenceDiagram
participant User
participant Shaker
participant ParserFactory
participant BaseParser
participant MoleculeData
User->>Shaker: read(data, notation)
alt Shaker->>ParserFactory: get_parser(notation)
ParserFactory-->>Shaker: parser (BaseParser)
Shaker->>BaseParser: parse(data)
BaseParser-->>Shaker: molecule_data (MoleculeData)
end
Shaker-->>User: Shaker instance
2. Converting Data¶
sequenceDiagram
participant User
participant Shaker
participant ConverterFactory
participant BaseConverter
User->>Shaker: convert(notation)
Shaker->>ConverterFactory: get_converter(notation)
ConverterFactory-->>Shaker: converter (BaseConverter)
Shaker->>BaseConverter: convert(molecule_data)
BaseConverter-->>Shaker: converted_data
Shaker-->>User: converted_data
3. Visualizing Data¶
Not much thought put into this, just a very rough sketch
sequenceDiagram
participant User
participant Shaker
participant VisualizationService
participant Visualizer
User->>Shaker: visualize(method)
Shaker->>VisualizationService: visualize(molecule_data, method)
alt method is "display"
VisualizationService->>Visualizer: display(molecule_data)
end
Visualizer-->>VisualizationService: visualization_result
VisualizationService-->>Shaker: visualization_result
Shaker-->>User: Shaker instance