Whenever element IDs are stored as meta data value, the relation will break on import when these IDs changes. So right before we import meta data we provide a filter passing the meta data and the instance of the ID mapper.
As everything else, this API has to be independent of the progress of the import, so it is not stated that the ID is available at the moment of the first processing.
This will be part of the meta-data importer described in #57
Todo:
[x] Provide an interface for value filters Import\Filter\ValueFilterableInterface.
[x] Provide implementations of this filter to handle simple serialized and non-serialized meta values ( SingleIdMetaValueFilter, RecursiveIdMetaValueFilter
[x] Provide a list that composes all filters for any type/key pair Import\Data\MetaFilterListInterface and Import\Data\MetaFilterListInterface
[x] Provide a connector for the importer objects that applies the filters from the list to the value right before input Import\Service\ImportMetaFilterInterface and Import\Service\ImportMetaFilter
[x] Fire the action w2m_import_meta_not_filterable (in the connector service) when a filter is not filterable right now
[x] Provide a collector that listens to this action Import\Data\ImportListeningMetaFilterList
[x] Provide a module that tries to resolve all postponed filters at the end of the import Import\Module\ResolvingPendingMetaFilter
[x] Provide a controller that connects everything Controller\MetaFilterApi
[x] Provide an action to apply custom filters to the list w2m_import_meta_filter
[ ] Use an internal composite in Data\MetaFilterList to have only one filter instance per type/key pair. If one of the composed filter is not able to filter the value, no other filter must be applied in the first time (Service\ImportMetaFilter). Otherwise we would get in trouble with multiple record metas on clean-up.
[ ] Apply all this for user, comment and term-meta if we respect these in future
Whenever element IDs are stored as meta data value, the relation will break on import when these IDs changes. So right before we import meta data we provide a filter passing the meta data and the instance of the ID mapper.
As everything else, this API has to be independent of the progress of the import, so it is not stated that the ID is available at the moment of the first processing.
This will be part of the meta-data importer described in #57
Todo:
Import\Filter\ValueFilterableInterface
.SingleIdMetaValueFilter
,RecursiveIdMetaValueFilter
Import\Data\MetaFilterListInterface
andImport\Data\MetaFilterListInterface
Import\Service\ImportMetaFilterInterface
andImport\Service\ImportMetaFilter
w2m_import_meta_not_filterable
(in the connector service) when a filter is not filterable right nowImport\Data\ImportListeningMetaFilterList
Import\Module\ResolvingPendingMetaFilter
Controller\MetaFilterApi
w2m_import_meta_filter
Data\MetaFilterList
to have only one filter instance per type/key pair. If one of the composed filter is not able to filter the value, no other filter must be applied in the first time (Service\ImportMetaFilter
). Otherwise we would get in trouble with multiple record metas on clean-up.