Skip to content
This repository was archived by the owner on Nov 28, 2019. It is now read-only.
This repository was archived by the owner on Nov 28, 2019. It is now read-only.

[Importer] Consistent API to map element IDs in meta-values #56

@dnaber-de

Description

@dnaber-de

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:

  • Provide an interface for value filters Import\Filter\ValueFilterableInterface.
  • Provide implementations of this filter to handle simple serialized and non-serialized meta values ( SingleIdMetaValueFilter, RecursiveIdMetaValueFilter
  • Provide a list that composes all filters for any type/key pair Import\Data\MetaFilterListInterface and Import\Data\MetaFilterListInterface
  • 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
  • Fire the action w2m_import_meta_not_filterable (in the connector service) when a filter is not filterable right now
  • Provide a collector that listens to this action Import\Data\ImportListeningMetaFilterList
  • Provide a module that tries to resolve all postponed filters at the end of the import Import\Module\ResolvingPendingMetaFilter
  • Provide a controller that connects everything Controller\MetaFilterApi
  • 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
  • Document all the stuff

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions