| | 32 | Old design |
| | 33 | |
| | 34 | * MatrixInterface: Interface class with function definitions and all documentation. |
| | 35 | * Matrix: Abstract class with most functions implemented. |
| | 36 | * xxxMatrix: Regular class which is a flavour of Matrix. Functions implemented here work together with the Abstract functions but are specific for this flavour. |
| | 37 | |
| | 38 | {{{ |
| | 39 | #!graphviz |
| | 40 | digraph components |
| | 41 | { |
| | 42 | MatrixInterface -> Matrix |
| | 43 | Matrix -> DatabaseMatrix |
| | 44 | Matrix -> BinaryMatrix |
| | 45 | Matrix -> FileMatrix |
| | 46 | Matrix -> MemoryMatrix |
| | 47 | } |
| | 48 | }}} |
| | 49 | |
| | 50 | New design: |
| | 51 | |
| | 52 | * ReadOnlyMatrix: Interface class of the simplest Matrix, so no dependancies and only getter functions. |
| | 53 | * EntityMatrix: Interface class of typed ReadOnlyMatrix, uses org.molgenis.util.Entity to type its rows/colums. |
| | 54 | * EditableMatrix: Interface class of read/writeable Matrix, has add and remove functions for manipulation. |
| | 55 | * MatrixInterface: XGAP specific stuff and complex functions?? |
| | 56 | * AbstractMatrix: Other complex functions?? |
| | 57 | * AbstractEntityMatrix: Integrates functionality of high level functions with Entities?? |
| | 58 | * xxxMatrix: Regular class which is a flavour of Matrix. Functions implemented here work together with the Abstract functions but are specific for this flavour. |
| | 59 | |
| | 60 | Current design in xgap_1_4_distro_hax: |
| | 61 | |
| | 62 | {{{ |
| | 63 | #!graphviz |
| | 64 | digraph components |
| | 65 | { |
| | 66 | ReadonlyMatrix -> EditableMatrix |
| | 67 | ReadonlyMatrix -> EntityMatrix |
| | 68 | EditableMatrix -> MatrixInterface |
| | 69 | ReadonlyMatrix -> AbstractMatrix |
| | 70 | AbstractMatrix -> AbstractEntityMatrix |
| | 71 | EntityMatrix -> AbstractEntityMatrix |
| | 72 | AbstractEntityMatrix -> DatabaseMatrix |
| | 73 | AbstractEntityMatrix -> BinaryMatrix |
| | 74 | AbstractEntityMatrix -> FileMatrix |
| | 75 | AbstractEntityMatrix -> MemoryMatrix |
| | 76 | } |
| | 77 | }}} |
| | 78 | |
| | 79 | Corrected new design?? |
| | 80 | |
| | 81 | {{{ |
| | 82 | #!graphviz |
| | 83 | digraph components |
| | 84 | { |
| | 85 | ReadonlyMatrix -> EditableMatrix |
| | 86 | ReadonlyMatrix -> EntityMatrix |
| | 87 | EditableMatrix -> MatrixInterface |
| | 88 | EntityMatrix -> MatrixInterface |
| | 89 | ReadonlyMatrix -> AbstractMatrix |
| | 90 | AbstractMatrix -> AbstractEntityMatrix |
| | 91 | EntityMatrix -> AbstractEntityMatrix |
| | 92 | AbstractEntityMatrix -> DatabaseMatrix |
| | 93 | AbstractEntityMatrix -> BinaryMatrix |
| | 94 | AbstractEntityMatrix -> FileMatrix |
| | 95 | AbstractEntityMatrix -> MemoryMatrix |
| | 96 | EditableMatrix -> MemoryMatrix |
| | 97 | EditableMatrix -> DatabaseMatrix |
| | 98 | MatrixInterface -> DatabaseMatrix |
| | 99 | MatrixInterface -> BinaryMatrix |
| | 100 | MatrixInterface -> FileMatrix |
| | 101 | MatrixInterface -> MemoryMatrix |
| | 102 | } |
| | 103 | }}} |
| | 104 | |
| | 105 | |
| | 106 | |