7.9.2.6. metadata-core

7.9.2.6.1. Présentation

Parent package: fr.gouv.vitam.metadata

Package proposition: fr.gouv.vitam.metadata.core

Ce package implémente les différentes opérations sur le module métadata
(insertUnit, insertObjectGroup, selectUnitsByQuery, selectUnitsById )

7.9.2.6.2. 1. Modules et packages

—fr.gouv.vitam.metadata.core.collections: contenant des classes pour gérer les requetes MongoDb

—fr.gouv.vitam.metadata.core.utils

—fr.gouv.vitam.metadata.core

—fr.gouv.vitam.metadata.core.database.configuration

7.9.2.6.3. 2. Classes

Dans cette section, nous présentons quelques classes principales dans les modules/packages abordés ci-dessus.

7.9.2.6.3.1. 2.1 Class DbRequest

La classe qui permet de gérer les requetes de metadata : la Méthode execRequest(final RequestParserMultiple requestParser, final Result defaultStartSet) permet de parser le query et définir le type d’objet(Unit ou Object Group) afin de gérer et exécuter la requete . Les différents traitements sont l’ajout, l’update et la suppression.

Pour l’update :

  • La Méthode lastUpdateFilterProjection(UpdateToMongodb requestToMongodb, Result last)

    Permet de finaliser la requete avec la dernière list de mise à jour en testant sur le type d’objet Unit ou Object group et ajout d’index qui correspond au champ mise à jour.

  • La Méthode indexFieldsUpdated(Result last)

    Permet de mettre à jour les indexes liées aux champs modifiés de Units. Fait appel à une méthode qui permet de mettre à jour un ensemble d’entrées dans l’index ElasticSearch en se basant sur un Curseur de résultat.

  • La méthode indexFieldsOGUpdated(Result last)

    Permet de mettre à jour les indexes liées aux champs modifiés de Object Group. fait appel à une méthode qui permet de mettre à jour un ensemble d’entrées dans l’index ElasticSearch en se basant sur un Curseur de résultat.

Pour l’insert :

  • La Méthode lastInsertFilterProjection(UpdateToMongodb requestToMongodb, Result last)

    Permet de finaliser la requete et ajout d’index qui correspond au champ mise à jour.

  • La Méthode insertBulk(InsertToMongodb requestToMongodb, Result result)

    Permet d’insérer les indexes. Fait appel à une méthode qui permet d’insérer un ensemble d’entrées dans l’index ElasticSearch en se basant sur une requête résultat.

Pour le delete :

  • La Méthode lastDeleteFilterProjection(UpdateToMongodb requestToMongodb, Result last)

    Permet de finaliser la requete et supprimer d’index en se basant sur la requete.

  • La Méthode removeOGIndexFields(Result last)

    Permet de supprimer les indexes des object group existants dans le résultat .

  • La Méthode removeUnitIndexFields(Result last)

    Permet de supprimer les indexes des units existants dans le résultat.

7.9.2.6.3.2. 2.2 Class ElasticsearchAccessMetadata

  • La Méthode updateBulkUnitsEntriesIndexes(MongoCursor<Unit>)

    permet de mettre à jour un ensemble d’entrées dans l’index ElasticSearch en se basant sur un Curseur de résultat.

  • La Méthode updateBulkOGEntriesIndexes(MongoCursor<ObjectGroup>)

    permet de mettre à jour un ensemble d’entrées dans l’index ElasticSearch de Object Group en se basant sur un Curseur de résultat.

  • La Méthode insertBulkUnitsEntriesIndexes(MongoCursor<Unit> cursor)

    permet d’insérer un ensemble d’entrées dans l’index ElasticSearch de Units en se basant sur un Curseur de résultat.

  • La Méthode updateBulkOGEntriesIndexes(MongoCursor<ObjectGroup> cursor)

    permet de mettre à jour un ensemble d’entrées dans l’index ElasticSearch de Object Group en se basant sur un Curseur de résultat.

  • La Méthode deleteBulkOGEntriesIndexes(MongoCursor<ObjectGroup> cursor)

    permet de supprimer un ensemble d’entrées dans l’index ElasticSearch de Object Group en se basant sur un Curseur de résultat.

  • La Méthode deleteBulkUnitsEntriesIndexes(MongoCursor<Unit> cursor)

    permet de supprimer un ensemble d’entrées dans l’index ElasticSearch de Unit en se basant sur un Curseur de résultat.

7.9.2.6.3.3. 2.3 Class MetaDataImpl

  • La Méthode insertUnit(JsonNode insertRequest)

permet de rechercher un ensemble d’entrée dans la collection Unit en se basant sur la requête DSL.

  • La Méthode insertObjectGroup(JsonNode objectGroupRequest)

permet de mettre à jour un ensemble d’entrée dans l’index ElasticSearch de Object Group en se basant sur un curseur de résultat.

  • La Méthode selectUnitsByQuery(JsonNode selectQuery)

permet de rechercher un ensemble d’entrée dans la collection Unit en se basant sur la requête DSL.

  • La Méthode selectUnitsById(JsonNode selectQuery, String unitId)

permet de rechercher un ensemble d’entrée dans la collection Unit en se basant sur la requête DSL et Id d’un Unit.

  • La Méthode selectObjectGroupById(JsonNode selectQuery, String objectGroupId)

permet de rechercher un ensemble d’entrée dans la collection ObjectGroup en se basant sur la requête DSL et Id d’un Unit.

  • La Méthode selectMetadataObject(JsonNode selectQuery, String unitOrObjectGroupId,List<BuilderToken.FILTERARGS> filters)

permet de rechercher un ensemble d’entrée dans les collections Unit et ObjectGroup en se basant sur la requête DSL, Id et le filtre.

7.9.2.6.3.4. 2.4 Class UnitNode

  • La Méthode buildAncestors(Map<String, UnitSimplified> parentMap, Map<String, UnitNode> allUnitNode, Set<String> rootList)

    permet de construire un graphe DAG pour les objets dans Vitam.

7.9.2.6.3.5. 2.5 Class UnitRuleCompute

  • La Méthode computeRule()

    permet de calculer les règles de gestion héritées dans un graphe. Chaque node va calculer un UnitInheritedRule grâce à celui de son parent avec ses propres règles de gestions puis concatener les règles (s’il a plusieurs parents).

7.9.2.6.3.6. 2.5 Class UnitInheritedRule

  • La Méthode createNewInheritedRule(ObjectNode unitManagement, String unitId)

    permet de calculer les règles de gestion héritées en utilisant le règle du parent avec ses propres règles de gestion.

  • La Méthode concatRule(UnitInheritedRule parentRule)

    permet de concaténer les règles de gestion héritées de plusieurs parents.