Skip to content

Commit 5328ed3

Browse files
imikejacksonclaude
andcommitted
ENH: Phase 15 - Rename I-prefixed non-interfaces to Abstract* and promote AbstractStringStore to IStringStore
Part A: Renamed 8 misnamed I-prefixed classes to Abstract*: - IDataCreationAction → AbstractDataCreationAction (Output.hpp + 31 files) - IDataIO → AbstractDataIO (file rename + class rename) - IGeometryIO → AbstractGeometryIO (file rename + class rename) - IGridGeometryIO → AbstractGridGeometryIO (file rename + class rename) - INodeGeom0dIO → AbstractNodeGeom0dIO (file rename + class rename) - INodeGeom1dIO → AbstractNodeGeom1dIO (file rename + class rename) - INodeGeom2dIO → AbstractNodeGeom2dIO (file rename + class rename) - INodeGeom3dIO → AbstractNodeGeom3dIO (file rename + class rename) Part B: Renamed AbstractStringStore → IStringStore (no data members, pure interface) Applied same renames to FileStore plugin (Zarr IO equivalents). Added backwards-compatible Python alias for IDataCreationAction. All 1106/1107 tests pass (1 expected failure: ExecuteProcessFilter). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 0cf0cc3 commit 5328ed3

345 files changed

Lines changed: 1323 additions & 1189 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CLAUDE.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,15 @@ Additionally, several "I"-prefixed classes in the DataObject hierarchy (`IArray`
104104
- [x] Git commit changes
105105
- [x] Git push changes
106106

107+
### Phase 15
108+
- [x] Quick naming fixes — Rename the 8 misnamed I-prefixed classes to Abstract* (`IDataCreationAction`, `IDataIO`, `IGeometryIO`, `IGridGeometryIO`, `INodeGeom0dIO`-`INodeGeom3dIO`)
109+
- [x] Rename `AbstractStringStore``IStringStore` (already a pure interface — no data members)
110+
- [x] Unit Tests must pass (except for the one allowed failure)
111+
- [x] Update Phase_8_Interface_Review.md
112+
- [x] Update Phase_8_Class_Hierarchy.dot
113+
- [x] Git commit changes
114+
- [x] Git push changes
115+
107116
## Directory Structure
108117
- `src/simplnx/` - Core library (Common, Core, DataStructure, Filter, Parameters, Pipeline, Plugin, Utilities)
109118
- `src/Plugins/` - Plugin modules

CMakeLists.txt

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ set(SIMPLNX_HDRS
375375
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/DataIOManager.hpp
376376
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/DataStructureReader.hpp
377377
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/DataStructureWriter.hpp
378-
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/IDataIO.hpp
378+
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/AbstractDataIO.hpp
379379
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/IOUtilities.hpp
380380

381381
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/DataStoreIO.hpp
@@ -390,12 +390,12 @@ set(SIMPLNX_HDRS
390390
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/GridMontageIO.hpp
391391
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/HexahedralGeomIO.hpp
392392
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/ImageGeomIO.hpp
393-
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/IGeometryIO.hpp
394-
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/IGridGeometryIO.hpp
395-
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/INodeGeom0dIO.hpp
396-
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/INodeGeom1dIO.hpp
397-
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/INodeGeom2dIO.hpp
398-
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/INodeGeom3dIO.hpp
393+
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/AbstractGeometryIO.hpp
394+
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/AbstractGridGeometryIO.hpp
395+
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/AbstractNodeGeom0dIO.hpp
396+
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/AbstractNodeGeom1dIO.hpp
397+
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/AbstractNodeGeom2dIO.hpp
398+
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/AbstractNodeGeom3dIO.hpp
399399
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/NeighborListIO.hpp
400400
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/QuadGeomIO.hpp
401401
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/RectGridGeomIO.hpp
@@ -450,7 +450,7 @@ set(SIMPLNX_HDRS
450450

451451
${SIMPLNX_SOURCE_DIR}/DataStructure/AbstractDataStore.hpp
452452
${SIMPLNX_SOURCE_DIR}/DataStructure/AbstractListStore.hpp
453-
${SIMPLNX_SOURCE_DIR}/DataStructure/AbstractStringStore.hpp
453+
${SIMPLNX_SOURCE_DIR}/DataStructure/IStringStore.hpp
454454
${SIMPLNX_SOURCE_DIR}/DataStructure/AttributeMatrix.hpp
455455
${SIMPLNX_SOURCE_DIR}/DataStructure/BaseGroup.hpp
456456
${SIMPLNX_SOURCE_DIR}/DataStructure/DataArray.hpp
@@ -640,7 +640,7 @@ set(SIMPLNX_SRCS
640640
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/DataIOManager.cpp
641641
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/DataStructureReader.cpp
642642
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/DataStructureWriter.cpp
643-
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/IDataIO.cpp
643+
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/AbstractDataIO.cpp
644644
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/IOUtilities.cpp
645645

646646
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/IDataStoreIO.cpp
@@ -652,12 +652,12 @@ set(SIMPLNX_SRCS
652652
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/GridMontageIO.cpp
653653
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/HexahedralGeomIO.cpp
654654
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/ImageGeomIO.cpp
655-
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/IGeometryIO.cpp
656-
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/IGridGeometryIO.cpp
657-
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/INodeGeom0dIO.cpp
658-
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/INodeGeom1dIO.cpp
659-
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/INodeGeom2dIO.cpp
660-
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/INodeGeom3dIO.cpp
655+
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/AbstractGeometryIO.cpp
656+
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/AbstractGridGeometryIO.cpp
657+
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/AbstractNodeGeom0dIO.cpp
658+
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/AbstractNodeGeom1dIO.cpp
659+
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/AbstractNodeGeom2dIO.cpp
660+
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/AbstractNodeGeom3dIO.cpp
661661
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/QuadGeomIO.cpp
662662
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/RectGridGeomIO.cpp
663663
${SIMPLNX_SOURCE_DIR}/DataStructure/IO/HDF5/StringArrayIO.cpp
@@ -691,7 +691,7 @@ set(SIMPLNX_SRCS
691691
${SIMPLNX_SOURCE_DIR}/DataStructure/Montage/GridMontage.cpp
692692
${SIMPLNX_SOURCE_DIR}/DataStructure/Montage/GridTileIndex.cpp
693693

694-
${SIMPLNX_SOURCE_DIR}/DataStructure/AbstractStringStore.cpp
694+
${SIMPLNX_SOURCE_DIR}/DataStructure/IStringStore.cpp
695695
${SIMPLNX_SOURCE_DIR}/DataStructure/AttributeMatrix.cpp
696696
${SIMPLNX_SOURCE_DIR}/DataStructure/BaseGroup.cpp
697697
${SIMPLNX_SOURCE_DIR}/DataStructure/DataGroup.cpp
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
# Phase 14 Post-Review: COM-Style Compliance Assessment
2+
3+
## Overview
4+
5+
This document assesses the simplnx codebase's adherence to COM-style library layout after completion of all 14 phases of refactoring. It identifies remaining work and prioritizes next steps.
6+
7+
---
8+
9+
## Core Hierarchies: Fully Compliant
10+
11+
All major public API hierarchies now have clean **Interface -> Abstract Base -> Concrete** chains:
12+
13+
| Hierarchy | Chain | Status |
14+
|-----------|-------|--------|
15+
| Filter | `IFilter` -> `AbstractFilter` -> concrete filters | Complete |
16+
| Pipeline | `IPipelineNode` -> `AbstractPipelineNode` -> concrete nodes | Complete |
17+
| Plugin | `IPlugin` -> `AbstractPlugin` -> concrete plugins | Complete |
18+
| Parameter | `IParameter` -> `AbstractParameter` -> concrete params | Complete |
19+
| DataStructure | `IDataStructure` -> `DataStructure` | Complete |
20+
| DataObject | `IDataObject` -> `AbstractDataObject` -> all data objects | Complete |
21+
| Geometry | `IGeometry`/`IGridGeometry`/`INodeGeometry*` -> `Abstract*` -> concrete geoms | Complete |
22+
| DataStore | `IDataStore` -> `AbstractDataStore<T>` -> `DataStore<T>` | Complete |
23+
| ListStore | `IListStore` -> `AbstractListStore<T>` -> `ListStore<T>` | Complete |
24+
| SegmentFeatures | `ISegmentFeatures` -> `AbstractSegmentFeatures` -> concrete | Complete |
25+
| ArrayThreshold | `IArrayThreshold` -> `AbstractArrayThreshold` -> concrete | Complete |
26+
| JsonPipelineParser | `IJsonPipelineParser` -> `AbstractJsonPipelineParser` -> concrete | Complete |
27+
28+
**14 complete chains, 100% `override` compliance, proper protected copy/move on all interfaces.**
29+
30+
---
31+
32+
## Pure Interface Inventory (16 verified)
33+
34+
| # | Interface | File | Pure Virtual Methods |
35+
|---|-----------|------|---------------------|
36+
| 1 | `IFilter` | `src/simplnx/Filter/IFilter.hpp` | 14 |
37+
| 2 | `IPipelineNode` | `src/simplnx/Pipeline/IPipelineNode.hpp` | 22 |
38+
| 3 | `IPlugin` | `src/simplnx/Plugin/IPlugin.hpp` | 12 |
39+
| 4 | `IParameter` | `src/simplnx/Filter/IParameter.hpp` | 12 |
40+
| 5 | `IDataStructure` | `src/simplnx/DataStructure/IDataStructure.hpp` | 41 |
41+
| 6 | `IDataObject` | `src/simplnx/DataStructure/IDataObject.hpp` | 22 |
42+
| 7 | `IGeometry` | `src/simplnx/DataStructure/Geometry/IGeometry.hpp` | 6 |
43+
| 8 | `IGridGeometry` | `src/simplnx/DataStructure/Geometry/IGridGeometry.hpp` | 18 |
44+
| 9 | `INodeGeometry0D` | `src/simplnx/DataStructure/Geometry/INodeGeometry0D.hpp` | 0 (marker) |
45+
| 10 | `INodeGeometry1D` | `src/simplnx/DataStructure/Geometry/INodeGeometry1D.hpp` | 4 |
46+
| 11 | `INodeGeometry2D` | `src/simplnx/DataStructure/Geometry/INodeGeometry2D.hpp` | 3 |
47+
| 12 | `INodeGeometry3D` | `src/simplnx/DataStructure/Geometry/INodeGeometry3D.hpp` | 3 |
48+
| 13 | `IDataStore` | `src/simplnx/DataStructure/IDataStore.hpp` | 17 |
49+
| 14 | `IListStore` | `src/simplnx/DataStructure/IListStore.hpp` | 10 |
50+
| 15 | `IArrayThreshold` | `src/simplnx/Utilities/IArrayThreshold.hpp` | 6 |
51+
| 16 | `IJsonPipelineParser` | `src/simplnx/Utilities/Parsing/JSON/IJsonPipelineParser.hpp` | 2 |
52+
53+
Additional verified pure interfaces (not I-prefixed):
54+
55+
| Interface | File | Pure Virtual Methods |
56+
|-----------|------|---------------------|
57+
| `IDataAction` | `src/simplnx/Filter/Output.hpp` | 2 |
58+
| `IDataFactory` | `src/simplnx/DataStructure/IO/Generic/IDataFactory.hpp` | 1 |
59+
| `IMaskCompare` | `src/simplnx/Utilities/MaskCompareUtilities.hpp` | 7 |
60+
| `IJsonFilterParser` | `src/simplnx/Utilities/Parsing/JSON/IJsonFilterParser.hpp` | 2 |
61+
| `IPluginLoader` | `src/simplnx/Plugin/PluginLoader.hpp` | 3 |
62+
63+
---
64+
65+
## Remaining Naming Violations (I-prefix on non-pure classes)
66+
67+
These 8 classes use the `I` prefix but have data members or concrete method bodies, violating the naming convention:
68+
69+
| Class | File | Issue | Recommended Fix |
70+
|-------|------|-------|-----------------|
71+
| `IDataCreationAction` | `src/simplnx/Filter/Output.hpp` | Has `m_CreatedPath` data member + concrete `getCreatedPath()` | Rename to `AbstractDataCreationAction` |
72+
| `IDataIO` (HDF5) | `src/simplnx/DataStructure/IO/HDF5/IDataIO.hpp` | Concrete methods, static helpers, template method | Rename to `AbstractDataIO` |
73+
| `IGeometryIO` | `src/simplnx/DataStructure/IO/HDF5/IGeometryIO.hpp` | Static concrete protected methods | Rename to `AbstractGeometryIO` |
74+
| `IGridGeometryIO` | `src/simplnx/DataStructure/IO/HDF5/IGridGeometryIO.hpp` | Same pattern | Rename to `AbstractGridGeometryIO` |
75+
| `INodeGeom0dIO` | `src/simplnx/DataStructure/IO/HDF5/INodeGeom0dIO.hpp` | Same pattern | Rename to `AbstractNodeGeom0dIO` |
76+
| `INodeGeom1dIO` | `src/simplnx/DataStructure/IO/HDF5/INodeGeom1dIO.hpp` | Same pattern | Rename to `AbstractNodeGeom1dIO` |
77+
| `INodeGeom2dIO` | `src/simplnx/DataStructure/IO/HDF5/INodeGeom2dIO.hpp` | Same pattern | Rename to `AbstractNodeGeom2dIO` |
78+
| `INodeGeom3dIO` | `src/simplnx/DataStructure/IO/HDF5/INodeGeom3dIO.hpp` | Same pattern | Rename to `AbstractNodeGeom3dIO` |
79+
80+
---
81+
82+
## Abstract Bases Without Extracted Interfaces
83+
84+
| Priority | Class | File | Pure Virtuals | Data Members | Notes |
85+
|----------|-------|------|---------------|--------------|-------|
86+
| **High** | `AbstractStringStore` | `src/simplnx/DataStructure/AbstractStringStore.hpp` | 9 | **None** | Already essentially a pure interface |
87+
| Medium | `AbstractDataIOManager` | `src/simplnx/DataStructure/IO/Generic/AbstractDataIOManager.hpp` | 1 | Yes (3) | IO infrastructure |
88+
| Medium | `AbstractDataStructureMessage` | `src/simplnx/DataStructure/Messaging/AbstractDataStructureMessage.hpp` | 1 | Yes | Messaging |
89+
| Medium | `AbstractPipelineMessage` | `src/simplnx/Pipeline/Messaging/AbstractPipelineMessage.hpp` | 1 | Yes | Messaging |
90+
| Medium | `PipelineNodeObserver` | `src/simplnx/Pipeline/Messaging/PipelineNodeObserver.hpp` | 1 | Yes | Observer pattern |
91+
| Low | `AlignSections` | `src/simplnx/Utilities/AlignSections.hpp` | 1 | Yes (4) | Algorithm utility |
92+
| Low | `SampleSurfaceMesh` | `src/simplnx/Utilities/SampleSurfaceMesh.hpp` | 1 | Yes | Algorithm utility |
93+
| Low | `AbstractTileIndex` | `src/simplnx/DataStructure/Montage/AbstractTileIndex.hpp` | 3 | Yes (1) | Montage subsystem |
94+
| Low | `AbstractMontage` | `src/simplnx/DataStructure/Montage/AbstractMontage.hpp` | 5 | Yes | Montage subsystem |
95+
| Low | `HDF5::ObjectIO` | `src/simplnx/Utilities/Parsing/HDF5/IO/ObjectIO.hpp` | 2 | Yes (heavy) | HDF5 implementation detail |
96+
97+
---
98+
99+
## Utility Classes (No Interface Needed)
100+
101+
The following were verified as value/utility classes with no virtual methods:
102+
103+
`DataMap`, `DataPath`, `LinkedPath`, `Metadata`, `Application`, `Preferences`, `Arguments`, `FilterHandle`, `FilterList`, `Parameters`
104+
105+
---
106+
107+
## Quality Metrics
108+
109+
| Metric | Value |
110+
|--------|-------|
111+
| Pure interface classes | 21 |
112+
| Abstract bases WITH interface | 17 |
113+
| Abstract bases WITHOUT interface | 15 (1 high, 5 medium, 9 low priority) |
114+
| I-prefixed naming violations | 8 |
115+
| `override` compliance | 100% (17/17) |
116+
| Protected copy/move compliance | 100% |
117+
| Complete Interface-ABC-Concrete chains | 14 |
118+
| Utility classes verified (no interface needed) | 10 |
119+
120+
---
121+
122+
## Recommended Next Steps (Phase 15)
123+
124+
### Priority 1: Fix I-prefix naming violations
125+
Rename the 8 misnamed `I`-prefixed classes to `Abstract*`:
126+
- `IDataCreationAction` -> `AbstractDataCreationAction`
127+
- `IDataIO` -> `AbstractDataIO`
128+
- `IGeometryIO` -> `AbstractGeometryIO`
129+
- `IGridGeometryIO` -> `AbstractGridGeometryIO`
130+
- `INodeGeom0dIO` -> `AbstractNodeGeom0dIO`
131+
- `INodeGeom1dIO` -> `AbstractNodeGeom1dIO`
132+
- `INodeGeom2dIO` -> `AbstractNodeGeom2dIO`
133+
- `INodeGeom3dIO` -> `AbstractNodeGeom3dIO`
134+
135+
### Priority 2: Easy interface extraction
136+
- Rename `AbstractStringStore` to `IStringStore` (already has no data members — it IS a pure interface)
137+
138+
### Priority 3: Optional interface extraction (medium priority)
139+
- Extract interfaces for messaging/observer classes if full COM consistency is desired

Code_Review/Phase_8_Class_Hierarchy.dot

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,17 +63,17 @@ digraph simplnx_hierarchy {
6363
AbstractNeighborList [label="{AbstractNeighborList|4 pure virtual|renamed from INeighborList Phase 11}", style=filled, fillcolor="#FFD580"];
6464
AbstractDataStore [label="{AbstractDataStore\<T\>|20 pure virtual}", style=filled, fillcolor="#FFD580"];
6565
AbstractListStore [label="{AbstractListStore\<T\>|14 pure virtual}", style=filled, fillcolor="#FFD580"];
66-
AbstractStringStore [label="{AbstractStringStore|12 pure virtual}", style=filled, fillcolor="#FFD580"];
66+
IStringStore [label="{IStringStore|12 pure virtual|promoted Phase 15}", style=filled, fillcolor="#A8D8EA"];
6767
AbstractMontage [label="{AbstractMontage|5 pure virtual}", style=filled, fillcolor="#FFD580"];
6868
AbstractTileIndex [label="{AbstractTileIndex|3 pure virtual}", style=filled, fillcolor="#FFD580"];
6969
AbstractParameter [label="{AbstractParameter}", style=filled, fillcolor="#FFD580"];
7070
ValueParameter [label="{ValueParameter|1 pure virtual}", style=filled, fillcolor="#FFD580"];
7171
DataParameter [label="{DataParameter|2 pure virtual}", style=filled, fillcolor="#FFD580"];
7272
MutableDataParameter [label="{MutableDataParameter|1 pure virtual}", style=filled, fillcolor="#FFD580"];
7373
ConstDataParameter [label="{ConstDataParameter|1 pure virtual}", style=filled, fillcolor="#FFD580"];
74-
IDataCreationAction [label="{IDataCreationAction|1 pure virtual}", style=filled, fillcolor="#FFD580"];
74+
AbstractDataCreationAction [label="{AbstractDataCreationAction|1 pure virtual|renamed Phase 15}", style=filled, fillcolor="#FFD580"];
7575
AbstractDataIOManager [label="{AbstractDataIOManager|1 pure virtual|renamed Phase 12}", style=filled, fillcolor="#FFD580"];
76-
HDF5_IDataIO [label="{HDF5::IDataIO|3 pure virtual}", style=filled, fillcolor="#FFD580"];
76+
HDF5_AbstractDataIO [label="{HDF5::AbstractDataIO|3 pure virtual|renamed Phase 15}", style=filled, fillcolor="#FFD580"];
7777
HDF5_ObjectIO [label="{HDF5::ObjectIO|2 pure virtual}", style=filled, fillcolor="#FFD580"];
7878
AlignSections [label="{AlignSections|1 pure virtual}", style=filled, fillcolor="#FFD580"];
7979
SampleSurfaceMesh [label="{SampleSurfaceMesh|1 pure virtual}", style=filled, fillcolor="#FFD580"];
@@ -216,7 +216,7 @@ digraph simplnx_hierarchy {
216216
ListStore -> AbstractListStore;
217217

218218
// --- StringStore hierarchy ---
219-
StringStore -> AbstractStringStore;
219+
StringStore -> IStringStore;
220220

221221
// --- Montage hierarchy ---
222222
GridTileIndex -> AbstractTileIndex;
@@ -231,8 +231,8 @@ digraph simplnx_hierarchy {
231231
ConcreteMutableParams -> MutableDataParameter;
232232

233233
// --- DataAction hierarchy ---
234-
IDataCreationAction -> IDataAction;
235-
ConcreteCreationActions -> IDataCreationAction;
234+
AbstractDataCreationAction -> IDataAction;
235+
ConcreteCreationActions -> AbstractDataCreationAction;
236236
ConcreteDirectActions -> IDataAction;
237237

238238
// --- SegmentFeatures hierarchy ---
@@ -262,7 +262,7 @@ digraph simplnx_hierarchy {
262262
ArrayThresholdSet -> AbstractArrayThreshold;
263263

264264
// --- IO hierarchy ---
265-
HDF5_IDataIO -> IDataFactory;
265+
HDF5_AbstractDataIO -> IDataFactory;
266266
HDF5_GroupIO -> HDF5_ObjectIO;
267267
HDF5_FileIO -> HDF5_GroupIO;
268268
HDF5_DatasetIO -> HDF5_ObjectIO;

0 commit comments

Comments
 (0)