Update takes T : IObject; UpdateProperty takes objects
Delete does not have to enforce any type for how it is defined
AdapterActions:
Push takes List<IObject>
Pull returns List<object>, so it's "BHoM agnostic" (e.g. Mongo_Toolkit can pull anything from database, HTTP_Toolkit can pull any data)
Proposed
CRUD methods were designed in order for the CRUD() (formerly Replace()) method to work.
Since the CRUD() works only with IBHoMObjects, then we should be consistent in imposing IBHoMObject for all CRUD methods.
There is not a single use case where we Create IObjects.
We should clarify this as well in the definition of IObject itself: they are not meant to be Created or Read. [..ELABORATE ON THIS] We don't enforce IBHoMObject in all CRUD methods, but in effect is like we did, as all of them require IBHoMObject in order to work as intended.
Current state
CRUD methods:
object
sAdapterActions:
List<IObject>
List<object>
, so it's "BHoM agnostic" (e.g. Mongo_Toolkit can pull anything from database, HTTP_Toolkit can pull any data)Proposed
CRUD methods were designed in order for the
CRUD()
(formerlyReplace()
) method to work. Since the CRUD() works only with IBHoMObjects, then we should be consistent in imposingIBHoMObject
for all CRUD methods.There is not a single use case where we Create
IObject
s. We should clarify this as well in the definition ofIObject
itself: they are not meant to be Created or Read. [..ELABORATE ON THIS] We don't enforceIBHoMObject
in all CRUD methods, but in effect is like we did, as all of them requireIBHoMObject
in order to work as intended.I really want to generalise more:
IBHoMObject