vitrivr's next-generation retrieval engine. It is capable of extracting and retrieving a wider range of multimedia objects such as audio, video, images or 3d models.
It was requested, that Descriptors should be immutable. This PR implements this change.
Since there are cases, where we need to be able to re-assign the id, the retrievableId or the field, every Descriptor now implements a copy() method that can be used to create copies and overwrite these attributes. This works generically, i.e., without knowing the concrete type of Descriptor.
The PR also necessitated a change to the MapStructDescriptor. This class is now abstract. There is a new, concrete implementation called AnyMapStructDescriptor which covers the case where the fields are configured at runtime.
It was requested, that
Descriptor
s should be immutable. This PR implements this change.Since there are cases, where we need to be able to re-assign the
id
, theretrievableId
or thefield
, everyDescriptor
now implements a copy() method that can be used to create copies and overwrite these attributes. This works generically, i.e., without knowing the concrete type ofDescriptor
.The PR also necessitated a change to the
MapStructDescriptor
. This class is now abstract. There is a new, concrete implementation calledAnyMapStructDescriptor
which covers the case where the fields are configured at runtime.