F refactor retrieve/insert properties
Compare changes
Files
48@@ -26,12 +26,9 @@ import java.util.HashSet;
Move back-end logic from the (abstract) transaction layer to the back-end implementation layer (for MySQL). Effectively, this hides the logic of replacement ids (also known under the misnomer "Domains").
related: https://gitlab.indiscale.com/caosdb/customers/umg_med_inf/management/-/issues/49
InsertEntityProperties
class to the MySQLInsertEntityProperties
class and changing the place where the response from the MySQL backend is transformed from a list of flat object (former rows) to a deep tree of properties which happens in the MySQLRetrieveProperties
class now.ProtoProperty
class is now used for those deeply nested properties and also for non-scalar values. That means it is back-end agnostic now and yet we can use it for the caching (while the more complex classes Entity
oder Property
are not well-suited for caching).DatabaseUtils
, as before, contains mostly back-end specific implementations (used by MySQLInsertEntityProperties
and MySQLRetrieveProperties
). Therefor it moved to the ...implementation.MySQL package. Since the Query classes still need this class here and there we cannot make it package visible yet and it has to stay public.Domain
class and the setters and getters for "replacements" of the EntityInterface
class have been removed because the replacement is now really contained by the MySQL implementation.Replacement
class is basically the successor of the Domain
classPlease, prepare your MR for a review. Be sure to write a summary and a focus and create gitlab comments for the reviewer. They should guide the reviewer through the changes, explain your changes and also point out open questions. For further good practices have a look at our review guidelines
For further good practices have a look at our review guidelines.