Lapisan data adalah peta yang menyimpan informasi umum tentang aplikasi. Kunci ini menggunakan serangkaian kunci standar sehingga dapat dibaca oleh pihak mana pun yang memahami spesifikasi. Status lapisan data diperbarui melalui API-nya. Misalnya, aplikasi dapat dimulai dengan dataLayer berikut:
{ 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"}] }
Dorongan terjadi secara sinkron; setelah push, perubahan telah tercermin dalam model.
Saat kunci event
didorong ke lapisan data, aturan untuk tag akan dievaluasi dan setiap
tag yang cocok dengan peristiwa ini akan diaktifkan.
Misalnya, dengan penampung dengan tag yang aturan pengaktifannya adalah "peristiwa" sama dengan
"openScreen", setelah push ini:
dataLayer.push("event", "openScreen");
Ringkasan Kolom
publik statis final Objek | OBJECT_NOT_PRESENT | Nilai jenis ini digunakan dalam Daftar menyebabkan Daftar menjadi sparse saat digabungkan; seolah-olah tidak ada elemen pada indeks itu. |
Ringkasan Metode Publik
Objek |
get(kunci string)
|
statis Daftar<Object> |
listOf(Objek... objek)
|
statis Peta<Objek, Objek> |
mapOf(Objek... objek)
|
void |
push(Map<Object, Object> update)
|
void |
Kolom
publik statis final Objek OBJECT_NOT_PRESENT
Nilai jenis ini digunakan dalam Daftar menyebabkan Daftar menjadi sparse saat digabungkan; seolah-olah tidak ada elemen pada indeks itu.
Metode Publik
publik Objek dapatkan (Kunci string)
Menampilkan objek dalam model yang terkait dengan kunci yang diberikan. Jika kuncinya tidak ditemukan,
null
ditampilkan.
Kunci dapat memiliki titik yang disematkan. Contoh:
kunci "a.b.c"
menampilkan peta dengan kunci "c"
dalam peta
dengan kunci "b"
dalam peta dengan kunci "a"
dalam model.
publik statis Daftar<Object> listOf (Objek... objek)
Metode utilitas yang membuat daftar.
Misalnya, kode berikut membuat daftar yang berisi "object1"
dan
"object2"
:
List<Object> list = DataLayer.listOf("object1", "object2");
publik statis Peta<Objek, Objek> mapOf (Objek... objek)
Metode utilitas yang membuat peta. Parameter harus berupa pasangan kunci masing-masing.
Misalnya, kode 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 dalam jumlah ganjil |
publik kosong push (Map<Object, Object> update)
Menggabungkan objek update
yang ditentukan ke dalam model data yang ada, memanggil
pemroses mana pun dengan update (setelah penggabungan terjadi).
Jika Anda ingin merepresentasikan nilai yang hilang (seperti indeks kosong dalam Daftar),
menggunakan objek OBJECT_NOT_PRESENT
.
Jika thread lain mengeksekusi push, panggilan ini akan diblokir hingga thread tersebut selesai.
Ini biasanya merupakan panggilan sinkron. Akan tetapi, jika ketika thread dieksekusi {i>push<i}, {i>push<i} lainnya terjadi dari thread yang sama, kemudian {i>push<i} kedua itu asinkron (push kedua akan ditampilkan sebelum perubahan dilakukan pada lapisan data). Detik ini push dari thread yang sama dapat terjadi, misalnya, jika push lapisan data dilakukan sebagai respons pada pengaktifan tag.
Jika update
berisi event
kunci, aturan akan dievaluasi dan
tag yang cocok
akan diaktifkan.
Parameter
update | objek pembaruan untuk memproses |
publik kosong push (Kunci objek, Nilai objek)
Mendorong pasangan nilai kunci data ke lapisan data. Ini hanyalah metode kenyamanan
yang memanggil push(DataLayer.mapOf(key, value))
.