Como o curso não abordou como fazer para converter objetos em objetos de banco, eu pensei na possibilidade de se utilizar o ID do objeto para buscá-lo no banco e utilizar isso no TypeConverter, assim, converteria o objeto em um Long via campo ID e de um Long, eu buscaria no banco via o mesmo campo ID. Porém o gerador de banco precisa de um context que eu não tenho acesso na classe converter. Como resolver este problema?
Segue um exemplo do que estou tentando fazer (Kotlin):
class TextureConverter {
companion object {
@TypeConverter
@JvmStatic
fun toLong(texture: Texture): Long {
return texture.id
}
@TypeConverter
@JvmStatic
fun toTexture(id: Long): Texture {
val generator = DatabaseGenerator()
val database = generator.generate(context) // este context não existe neste ponto. Não sei como buscar um context que possa ser usado aqui.
val dao = database.getTextureDAO()
return dao.getByID(id)
}
}
}
Tem como fazer o que quero fazer, ou existe outra forma?
Obrigado!
Edit:
Faz tempo que fiz esse curso e quis pegar pra trabalhar numa coisa aqui e não lembro muito bem de tudo. Será que adicionar como parâmetro resolve meu problema?
Não sei se o Room faz alguma mágica por baixo dos panos que obrigue esses métodos a ter apenas um parâmetro...