Couche de données

classe publique DataLayer

La couche de données est une carte qui contient des informations génériques sur l'application. Il utilise un ensemble standard de clés afin qu’il puisse être lu par n’importe quelle partie qui comprend la spécification. L'état de la couche de données est mis à jour via son API. Par exemple, une application peut commencer par la couche de données suivante:

   {
     title: "Original screen title"
   }
Étant donné que l'état et les données d'une application peuvent changer, celle-ci peut mettre à jour la couche de données avec un appel tel que:
   dataLayer.push(DataLayer.mapOf("title", "New screen title"));
La couche de données contient maintenant:
   {
     title: "New screen title"
   }
Après un autre transfert:
 dataLayer.push(DataLayer.mapOf("xyz", 3));
La couche de données contient:
   {
     "title": "New screen title",
     "xyz": 3
   }
L'exemple suivant montre comment fonctionne la fusion de tableaux et de cartes. Si l'original La couche de données contient:
   {
     "items": ["item1", null, "item2", {"a": "aValue", "b": "bValue"}]
   }
Après cette transmission:
 dataLayer.push("items", DataLayer.listOf(null, "item6", DataLayer.OBJECT_NOT_PRESENT,
     DataLayer.mapOf("a", null)));
La couche de données contient:
   {
     "items": [null, "item6", "item2", {"a": null, "b": "bValue"}]
   }

Les transferts s'effectuent de manière synchrone. après le transfert, les modifications se reflètent dans le modèle.

Lorsqu'une clé event est transmise à la couche de données, les règles des balises sont évaluées et les balises correspondant à cet événement se déclencheront. Par exemple, pour un conteneur associé à une balise dont la règle de déclenchement est "événement" est égal(e) à « openScreen », après cette poussée:

 dataLayer.push("event", "openScreen");
cette balise se déclenchera.

Récapitulatif sur les champs

public statique finale Objet OBJECT_NOT_PRESENT Les valeurs de ce type utilisées dans une liste provoquent une dispersion de la liste lors de la fusion. c'est comme si aucun élément ne correspondait à cet indice.

Récapitulatif des méthodes publiques

Objet
get(chaîne key)
statique List<Object>
listOf(Objet... objets)
statique Map<Object, Object>
mapOf(Objet... objets)
vide
push(Map<Object, Object> update)
vide
push(clé de l'objet, valeur de l'objet)

Champs

<ph type="x-smartling-placeholder"></ph> public statique finale Objet OBJECT_NOT_PRESENT

Les valeurs de ce type utilisées dans une liste provoquent une dispersion de la liste lors de la fusion. c'est comme si aucun élément ne correspondait à cet indice.

Méthodes publiques

<ph type="x-smartling-placeholder"></ph> public Objet get (Chaîne clé)

Renvoie l'objet du modèle associé à la clé donnée. Si la clé est introuvable, null est renvoyé.

La clé peut comporter des points. Par exemple: Une clé de "a.b.c" renvoie une map avec la clé "c" dans une map. avec la clé "b" dans une map avec la clé "a" dans le modèle.

<ph type="x-smartling-placeholder"></ph> public statique List<Object> listOf (Objet... objets)

Méthode utilitaire qui crée une liste

Par exemple, la requête suivante crée une liste contenant "object1" et "object2":

   List<Object> list = DataLayer.listOf("object1", "object2");
 

<ph type="x-smartling-placeholder"></ph> public statique Map<Object, Object> mapOf (Objet... objets)

Méthode utilitaire qui crée une carte Les paramètres doivent être des paires de clés valeurs.

L'exemple suivant crée une carte mappant "key1" à "value1". et "key2" à "value2":

   Map<Object, Object> map = DataLayer.mapOf("key1", "value1", "key2", "value2");
 

Génère
IllegalArgumentException s'il existe un nombre impair de paramètres

<ph type="x-smartling-placeholder"></ph> public vide push (Map<Object, Object> Mettre à jour)

La méthode fusionne l'objet update donné dans le modèle de données existant, en appelant la méthode tous les écouteurs concernés par la mise à jour (après la fusion).

Si vous souhaitez représenter une valeur manquante (comme un index vide dans une liste), utilisez l'objet OBJECT_NOT_PRESENT.

Si un autre thread exécute une commande push, cet appel est bloqué jusqu'à ce que ce thread soit terminé.

Il s'agit généralement d'un appel synchrone. Cependant, si, pendant l'exécution du thread, la transmission s'effectue à partir du même thread, la deuxième est asynchrone. (Lors de la seconde poussée, les modifications seront renvoyées avant que des modifications n'aient été apportées à la couche de données.) Cette seconde une transmission à partir du même thread peut se produire, par exemple, si une transmission de couche de données est effectuée en réponse au déclenchement d'une balise.

Si update contient la clé event, les règles seront évaluées et les balises correspondantes se déclencheront.

Paramètres
update l'objet de mise à jour pour traiter

<ph type="x-smartling-placeholder"></ph> public vide push (clé de l'objet, valeur de l'objet)

Envoie une paire de données clé/valeur à la couche de données. Il s'agit simplement d'une méthode pratique qui appelle push(DataLayer.mapOf(key, value)).