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 |
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))
.