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" }
dataLayer.push(DataLayer.mapOf("title", "New screen title"));
{ title: "New screen title" }
dataLayer.push(DataLayer.mapOf("xyz", 3));
{ "title": "New screen title", "xyz": 3 }
{ "items": ["item1", null, "item2", {"a": "aValue", "b": "bValue"}] }
dataLayer.push("items", DataLayer.listOf(null, "item6", DataLayer.OBJECT_NOT_PRESENT, DataLayer.mapOf("a", null)));
{ "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");
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 |
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))
.