🛠️ Converter Class – āϏāĻšāϜ āĻ­াāώা⧟ āĻŦুāĻুāύ

 
🛠️ Converter Class – āϏāĻšāϜ āĻ­াāώা⧟ āĻŦুāĻুāύ

Room Database āϏাāϧাāϰāĻŖāϤ āĻĒ্āϰিāĻŽিāϟিāĻ­ āϟাāχāĻĒেāϰ āĻĄাāϟা (āϝেāĻŽāύ Int, String, Boolean, āχāϤ্āϝাāĻĻি) āϏংāϰāĻ•্āώāĻŖ āĻ•āϰāϤে āĻĒাāϰে
āĻ•িāύ্āϤু āϝāĻĻি āφāĻŽāϰা āĻ•াāϏ্āϟāĻŽ āĻ…āĻŦāϜেāĻ•্āϟ āĻŦা āϜāϟিāϞ āĻĄাāϟা āϟাāχāĻĒ (āϝেāĻŽāύ List, Date, Enum, Map) āϏংāϰāĻ•্āώāĻŖ āĻ•āϰāϤে āϚাāχ āϤাāĻšāϞে āĻ•ী āĻšāĻŦে? 🤔

āϏেāĻ–াāύেāχ āĻĻāϰāĻ•াāϰ āĻšā§Ÿ @TypeConverter āĻŦা āĻ•āύāĻ­াāϰ্āϟাāϰ āĻ•্āϞাāϏ!


📌 Converter Class āĻ•ী?

🔹 Converter Class āĻāĻŽāύ āĻāĻ•āϟি āĻ•্āϞাāϏ, āϝা Room Database-āĻ•ে āĻŦāϞে āĻĻে⧟, āĻ•ীāĻ­াāĻŦে āĻāĻ•āϟি āϜāϟিāϞ āĻĄাāϟা āϟাāχāĻĒāĻ•ে SQLite-āĻāϰ āϜāύ্āϝ āϏাāĻĒোāϰ্āϟেāĻĄ āĻĢāϰāĻŽ্āϝাāϟে āϰূāĻĒাāύ্āϤāϰ āĻ•āϰāϤে āĻšāĻŦে āĻāĻŦং āĻĒāϰে āφāĻŦাāϰ āφāĻ—েāϰ āĻĢāϰāĻŽ্āϝাāϟে āĻĢিāϰি⧟ে āφāύāϤে āĻšāĻŦে।

💡 āϏāĻšāϜ āĻ•āϰে āĻŦāϞāϞে – āĻāϟি āĻāĻ•āϟি āĻĄাāϟা āĻĢāϰāĻŽ্āϝাāϟ āĻĒāϰিāĻŦāϰ্āϤāύ āĻ•āϰাāϰ āĻŽাāϧ্āϝāĻŽ


đŸŽ¯ Converter Class āĻ•েāύ āĻĻāϰāĻ•াāϰ?

👉 Room Database āϏāϰাāϏāϰি List, Date, Map, āĻŦা Custom Object āϏ্āϟোāϰ āĻ•āϰāϤে āĻĒাāϰে āύা।
👉 āϤাāχ āĻāĻ—ুāϞোāĻ•ে String āĻŦা āĻ…āύ্āϝ āϏাāĻĒোāϰ্āϟেāĻĄ āĻĢāϰāĻŽ্āϝাāϟে āĻ•āύāĻ­াāϰ্āϟ āĻ•āϰে āϏ্āϟোāϰ āĻ•āϰāϤে āĻšā§Ÿ।
👉 āĻĒāϰে āφāĻŦাāϰ āϏেāĻ—ুāϞোāĻ•ে āφāĻ—েāϰ āĻŽāϤো āϰূāĻĒাāύ্āϤāϰ āĻ•āϰāϤে āĻšā§Ÿ।
👉 āĻāϟাāχ Converter Class-āĻāϰ āĻ•াāϜ!


🚀 āĻ•āύāĻ­াāϰ্āϟাāϰ āĻ•্āϞাāϏ āϤৈāϰি āĻ•āϰা āĻļিāĻ–ুāύ!

ā§§️⃣ Date (āϤাāϰিāĻ–) āĻ•āύāĻ­াāϰ্āϟাāϰ

Room Database āϏāϰাāϏāϰি Date āϏংāϰāĻ•্āώāĻŖ āĻ•āϰāϤে āĻĒাāϰে āύা।
āϤাāχ Date → Timestamp (Long) āĻāĻŦং Timestamp → Date āĻ•āύāĻ­াāϰ্āϟ āĻ•āϰāϤে āĻšāĻŦে।

import androidx.room.TypeConverter
import java.util.Date

class DateConverter {
    @TypeConverter
    fun fromTimestamp(value: Long?): Date? {
        return value?.let { Date(it) }
    }

    @TypeConverter
    fun dateToTimestamp(date: Date?): Long? {
        return date?.time
    }
}

fromTimestamp → SQLite āĻĨেāĻ•ে Long āύি⧟ে Date āĻŦাāύা⧟।
dateToTimestamp → Date āĻĨেāĻ•ে Long āĻŦাāύি⧟ে SQLite-āϤে āϏংāϰāĻ•্āώāĻŖ āĻ•āϰে।


⧍️⃣ List (āϤাāϞিāĻ•া) āĻ•āύāĻ­াāϰ্āϟাāϰ

Room āϏāϰাāϏāϰি List<String> āϏংāϰāĻ•্āώāĻŖ āĻ•āϰāϤে āĻĒাāϰে āύা, āϤাāχ āĻāϟিāĻ•ে String-āĻ āĻ•āύāĻ­াāϰ্āϟ āĻ•āϰāϤে āĻšāĻŦে।

import androidx.room.TypeConverter
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken

class ListConverter {
    @TypeConverter
    fun fromString(value: String): List<String> {
        return Gson().fromJson(value, object : TypeToken<List<String>>() {}.type)
    }

    @TypeConverter
    fun listToString(list: List<String>): String {
        return Gson().toJson(list)
    }
}

fromStringString āĻ•ে List<String> āĻ āĻ•āύāĻ­াāϰ্āϟ āĻ•āϰে।
listToStringList<String> āĻ•ে JSON String-āĻ āĻ•āύāĻ­াāϰ্āϟ āĻ•āϰে āĻĄাāϟাāĻŦেāϏে āϏংāϰāĻ•্āώāĻŖ āĻ•āϰে।


ā§Š️⃣ Enum (āĻāύাāĻŽ) āĻ•āύāĻ­াāϰ্āϟাāϰ

āϝāĻĻি āφāĻĒāύাāϰ āĻ…্āϝাāĻĒে Enum āϟাāχāĻĒেāϰ āĻĄাāϟা āĻĨাāĻ•ে, āϤাāĻšāϞে āĻāϟিāĻ•েāĻ“ String āĻŦা Int-āĻ āĻ•āύāĻ­াāϰ্āϟ āĻ•āϰāϤে āĻšāĻŦে।

import androidx.room.TypeConverter

enum class UserType { ADMIN, MEMBER, GUEST }

class EnumConverter {
    @TypeConverter
    fun fromUserType(userType: UserType): String {
        return userType.name
    }

    @TypeConverter
    fun toUserType(value: String): UserType {
        return UserType.valueOf(value)
    }
}

fromUserTypeUserType āĻ•ে String āĻŦাāύি⧟ে SQLite-āϤে āϰাāĻ–āĻŦে।
toUserTypeString āĻ•ে āφāĻŦাāϰ UserType-āĻ āϰূāĻĒাāύ্āϤāϰ āĻ•āϰāĻŦে।


🔹 āĻ•āύāĻ­াāϰ্āϟাāϰ āĻ•্āϞাāϏ āĻ•ীāĻ­াāĻŦে Room Database-āĻ āϝুāĻ•্āϤ āĻ•āϰāĻŦেāύ?

👉 āĻĒ্āϰāĻĨāĻŽে, āĻ•āύāĻ­াāϰ্āϟাāϰ āĻ•্āϞাāϏ āϤৈāϰি āĻ•āϰāϤে āĻšāĻŦে।
👉 āϤাāϰāĻĒāϰ, @Database āĻ…্āϝাāύোāϟেāĻļāύ-āĻāϰ āĻŽāϧ্āϝে TypeConverters āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰāϤে āĻšāĻŦে।

@Database(entities = [User::class], version = 1)
@TypeConverters(DateConverter::class, ListConverter::class, EnumConverter::class)
abstract class AppDatabase : RoomDatabase() {
    abstract fun userDao(): UserDao
}

āĻāϟি Room āĻ•ে āĻŦāϞে āĻĻেāĻŦে, āĻ•োāύ āĻ•োāύ āĻ•āύāĻ­াāϰ্āϟাāϰ āĻ•্āϞাāϏ āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰāϤে āĻšāĻŦে।


🔍 āωāĻĒāϏংāĻšাāϰ (Final Thoughts)

Room āϏāϰাāϏāϰি Custom Object āĻŦা Complex Data Type āϏংāϰāĻ•্āώāĻŖ āĻ•āϰāϤে āĻĒাāϰে āύা।
Converter Class āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰে āĻāĻ—ুāϞোāĻ•ে āϏাāĻĒোāϰ্āϟেāĻĄ āĻĢāϰāĻŽ্āϝাāϟে āϰূāĻĒাāύ্āϤāϰ āĻ•āϰা āϝা⧟।
Date, List, Enum, Map āχāϤ্āϝাāĻĻিāϰ āϜāύ্āϝ TypeConverter āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰāϤে āĻšā§Ÿ।
Room Database-āĻāϰ @TypeConverters āĻĻি⧟ে āĻāĻ•াāϧিāĻ• āĻ•āύāĻ­াāϰ্āϟাāϰ āĻ•্āϞাāϏ āϝুāĻ•্āϤ āĻ•āϰা āϝা⧟।

đŸ”Ĩ āĻāĻ–āύ āφāĻĒāύি Converter Class-āĻāϰ āĻ•াāϜ āĻŦুāĻে āĻĢেāϞেāĻ›েāύ! 😃🚀

Comments

Popular posts from this blog

AI (Artificial Intelligence) āϏāĻšāϜāĻ­াāĻŦে āĻŦোāĻাāϰ āϜāύ্āϝ āĻāĻ•āĻĻāĻŽ āĻŽāϏ্āϤিāώ্āĻ•-āĻŦাāύ্āϧāĻŦ āĻŦ্āϝাāĻ–্āϝা 🧠🤖

🧠 Regex āĻ•ী?

Kotlin-āĻ āĻ­েāϰিāϝ়েāĻŦāϞ āϘোāώāĻŖা āĻ•āϰাāϰ āĻĻুāχ āωāĻĒাāϝ়