ডেটা লেয়ার

পাবলিক ক্লাস ডেটা লেয়ার

ডেটা স্তর হল একটি মানচিত্র যাতে অ্যাপ্লিকেশন সম্পর্কে জেনেরিক তথ্য থাকে। এটি কীগুলির একটি মানক সেট ব্যবহার করে যাতে স্পেসিফিকেশন বুঝতে পারে এমন যেকোনো পক্ষ এটি পড়তে পারে। ডাটা লেয়ার স্টেট এর API এর মাধ্যমে আপডেট করা হয়। উদাহরণস্বরূপ, একটি অ্যাপ নিম্নলিখিত ডেটা লেয়ার দিয়ে শুরু হতে পারে:

   {
     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"}]
   }

ধাক্কা সিঙ্ক্রোনাসভাবে ঘটে; ধাক্কা পরে, পরিবর্তন মডেল প্রতিফলিত হয়েছে.

যখন একটি event কী ডেটা স্তরে পুশ করা হয়, তখন ট্যাগগুলির নিয়মগুলি মূল্যায়ন করা হয় এবং এই ইভেন্টের সাথে মিলে যাওয়া যেকোন ট্যাগগুলি ফায়ার হবে৷ উদাহরণস্বরূপ, একটি ট্যাগ সহ একটি ধারক দেওয়া হয়েছে যার ফায়ারিং নিয়ম হল যে "ইভেন্ট" "ওপেনস্ক্রিন" এর সমান, এই পুশের পরে:

 dataLayer.push("event", "openScreen");
ট্যাগটি ফায়ার হবে।

ক্ষেত্রের সারাংশ

পাবলিক স্ট্যাটিক ফাইনাল অবজেক্ট OBJECT_NOT_PRESENT একটি তালিকায় ব্যবহৃত এই ধরনের মানগুলি একত্রিত করার সময় তালিকাটিকে স্পার্স করে তোলে; যে সূচকে কোন উপাদান ছিল না.

পাবলিক পদ্ধতির সারাংশ

অবজেক্ট
পান ( স্ট্রিং কী )
স্ট্যাটিক তালিকা<অবজেক্ট>
listOf ( অবজেক্ট... অবজেক্ট )
স্ট্যাটিক মানচিত্র<অবজেক্ট, অবজেক্ট>
mapOf ( বস্তু... বস্তু )
অকার্যকর
পুশ ( ম্যাপ<অবজেক্ট, অবজেক্ট> আপডেট )
অকার্যকর
পুশ ( অবজেক্ট কী , অবজেক্টের মান )

ক্ষেত্র

সর্বজনীন স্ট্যাটিক চূড়ান্ত বস্তু OBJECT_NOT_PRESENT

একটি তালিকায় ব্যবহৃত এই ধরনের মানগুলি একত্রিত করার সময় তালিকাটিকে স্পার্স করে তোলে; যে সূচকে কোন উপাদান ছিল না.

পাবলিক পদ্ধতি

পাবলিক অবজেক্ট পান ( স্ট্রিং কী )

প্রদত্ত কী-এর সাথে যুক্ত মডেলের বস্তুটি ফেরত দেয়। যদি কী পাওয়া না যায়, null ফেরত দেওয়া হয়।

কী এম্বেডেড পিরিয়ড থাকতে পারে। উদাহরণস্বরূপ: "abc" এর একটি কী মডেলের "c" কী সহ মানচিত্রে "b" কী সহ মানচিত্রে "a" কী সহ একটি মানচিত্র প্রদান করে।

সর্বজনীন স্ট্যাটিক তালিকা<অবজেক্ট> listOf ( অবজেক্ট... অবজেক্ট )

ইউটিলিটি পদ্ধতি যা একটি তালিকা তৈরি করে।

উদাহরণস্বরূপ, নিম্নলিখিত "object1" এবং "object2" সমন্বিত একটি তালিকা তৈরি করে :

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

সর্বজনীন স্ট্যাটিক মানচিত্র<অবজেক্ট, অবজেক্ট> mapOf ( অবজেক্ট... অবজেক্ট )

ইউটিলিটি পদ্ধতি যা একটি মানচিত্র তৈরি করে। পরামিতিগুলি কী মানগুলির জোড়া হওয়া উচিত।

উদাহরণস্বরূপ, নিম্নলিখিতটি "key1" থেকে "value1" এবং "key2" থেকে "value2" একটি মানচিত্র ম্যাপিং তৈরি করে :

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

নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি একটি বিজোড় সংখ্যক পরামিতি থাকে

সর্বজনীন অকার্যকর পুশ ( মানচিত্র<অবজেক্ট, অবজেক্ট> আপডেট )

প্রদত্ত update অবজেক্টকে বিদ্যমান ডেটা মডেলে মার্জ করে, যেকোন শ্রোতাকে আপডেটের সাথে কল করে (একত্রীকরণ হওয়ার পরে)।

আপনি যদি একটি অনুপস্থিত মান উপস্থাপন করতে চান (যেমন একটি তালিকায় একটি খালি সূচক), OBJECT_NOT_PRESENT অবজেক্ট ব্যবহার করুন।

যদি অন্য থ্রেড একটি পুশ চালায়, এই থ্রেডটি শেষ না হওয়া পর্যন্ত এই কলটি ব্লক করে।

এটি সাধারণত একটি সিঙ্ক্রোনাস কল। যাইহোক, যদি, থ্রেডটি পুশ চালানোর সময়, একই থ্রেড থেকে আরেকটি পুশ ঘটে, তাহলে সেই দ্বিতীয় পুশটি অ্যাসিঙ্ক্রোনাস হয় (ডেটা স্তরে পরিবর্তন করার আগে দ্বিতীয় পুশটি ফিরে আসবে)। একই থ্রেড থেকে এই দ্বিতীয় পুশ ঘটতে পারে, উদাহরণস্বরূপ, যদি ট্যাগ ফায়ারিংয়ের প্রতিক্রিয়া হিসাবে একটি ডেটা স্তর পুশ করা হয়।

যদি update মূল event থাকে, তবে নিয়মগুলি মূল্যায়ন করা হবে এবং মিলিত ট্যাগগুলি ফায়ার হবে৷

পরামিতি
হালনাগাদ প্রক্রিয়া করার জন্য আপডেট অবজেক্ট

সর্বজনীন অকার্যকর পুশ ( অবজেক্ট কী , অবজেক্ট মান )

ডেটা স্তরে ডেটার একটি কী/মান জোড়া ঠেলে দেয়। এটি শুধুমাত্র একটি সুবিধার পদ্ধতি যা কল করে push(DataLayer.mapOf(key, value))