|  | 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 |  |