DataLayer

class publik DataLayer

Lapisan data adalah peta yang menyimpan informasi generik tentang aplikasi. Spesifikasi ini menggunakan seperangkat kunci standar sehingga dapat dibaca oleh pihak mana pun yang memahami spesifikasinya. Status lapisan data diperbarui melalui API-nya. Misalnya, aplikasi dapat dimulai dengan dataLayer berikut:

   {
     title: "Original screen title"
   }
Karena status/data aplikasi dapat berubah, aplikasi dapat memperbarui dataLayer dengan panggilan seperti:
   dataLayer.push(DataLayer.mapOf("title", "New screen title"));
Sekarang lapisan data berisi:
   {
     title: "New screen title"
   }
Setelah pengiriman lain terjadi:
 dataLayer.push(DataLayer.mapOf("xyz", 3));
dataLayer berisi:
   {
     "title": "New screen title",
     "xyz": 3
   }
Contoh berikut menunjukkan cara kerja penggabungan array dan peta. Jika dataLayer asli berisi:
   {
     "items": ["item1", null, "item2", {"a": "aValue", "b": "bValue"}]
   }
Setelah pengiriman ini terjadi:
 dataLayer.push("items", DataLayer.listOf(null, "item6", DataLayer.OBJECT_NOT_PRESENT,
     DataLayer.mapOf("a", null)));
dataLayer berisi:
   {
     "items": [null, "item6", "item2", {"a": null, "b": "bValue"}]
   }

Push terjadi secara sinkron; setelah push, perubahan telah dicerminkan dalam model.

Saat kunci event didorong ke lapisan data, aturan untuk tag akan dievaluasi dan semua tag yang cocok dengan peristiwa ini akan diaktifkan. Misalnya, dengan penampung dengan tag yang aturan pengaktifannya adalah "event" sama dengan "openScreen", setelah push ini:

 dataLayer.push("event", "openScreen");
tag tersebut akan diaktifkan.

Ringkasan Kolom

public static final Object OBJECT_NOT_PRESENT Nilai jenis ini yang digunakan dalam Daftar menyebabkan List menjadi jarang saat digabungkan; seolah-olah tidak ada elemen pada indeks tersebut.

Ringkasan Metode Publik

Object
get(Kunci string)
static List<Object>
listOf(Objek... objek)
static Map<Object, Object>
mapOf(Objek... objek)
void
push(Peta<Object, Objek> update)
void
push(Kunci objek, Nilai objek)

Kolom

public static final Objek OBJECT_NOT_PRESENT

Nilai jenis ini yang digunakan dalam Daftar menyebabkan List menjadi jarang saat digabungkan; seolah-olah tidak ada elemen pada indeks tersebut.

Metode Publik

public Objek get (String key)

Menampilkan objek dalam model yang terkait dengan kunci yang diberikan. Jika kunci tidak ditemukan, null akan ditampilkan.

Kunci dapat memiliki titik tersemat. Misalnya: kunci "a.b.c" akan menampilkan peta dengan kunci "c" dalam peta dengan kunci "b" dalam peta dengan kunci "a" dalam model.

public static List<Object> listOf (Object... objects)

Metode utilitas yang membuat daftar.

Misalnya, perintah berikut akan membuat daftar yang berisi "object1" dan "object2":

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

public static Map<Object, Object> mapOf (Objek... objek)

Metode utilitas yang membuat peta. Parameter harus berupa pasangan nilai kunci.

Misalnya, contoh berikut akan membuat peta yang memetakan "key1" ke "value1" dan "key2" ke "value2":

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

Menampilkan
IllegalArgumentException jika ada parameter jumlah ganjil

public void push (Peta<Object, Objek> update)

Menggabungkan objek update yang ditentukan ke dalam model data yang ada, memanggil pemroses dengan pembaruan (setelah penggabungan terjadi).

Jika ingin menampilkan nilai yang hilang (seperti indeks kosong dalam Daftar), gunakan objek OBJECT_NOT_PRESENT.

Jika thread lain menjalankan push, panggilan ini akan melakukan pemblokiran hingga thread tersebut selesai.

Ini biasanya merupakan panggilan sinkron. Namun, jika, saat thread mengeksekusi push, push lain terjadi dari thread yang sama, maka push kedua tersebut asinkron (push kedua akan ditampilkan sebelum perubahan dilakukan pada lapisan data). Dorongan kedua dari thread yang sama ini dapat terjadi, misalnya, jika push lapisan data dibuat sebagai respons terhadap pengaktifan tag.

Jika update berisi kunci event, aturan akan dievaluasi dan tag yang cocok akan diaktifkan.

Parameter
ubah objek update yang akan diproses

public void push (Objek kunci, Nilai objek)

Mendorong data key-value pair ke lapisan data. Ini hanyalah metode praktis yang memanggil push(DataLayer.mapOf(key, value)).