clean repository

This commit is contained in:
2019-07-30 17:06:19 +02:00
parent 2e65045f21
commit e819e1d027

View File

@@ -1,30 +1,13 @@
package fr.postgresjson.repository package fr.postgresjson.repository
import fr.postgresjson.connexion.Requester import fr.postgresjson.connexion.Requester
import fr.postgresjson.entity.EntitiesCollections
import fr.postgresjson.entity.EntityI import fr.postgresjson.entity.EntityI
import fr.postgresjson.serializer.Serializer
import jdk.jfr.Experimental
import kotlin.reflect.KClass import kotlin.reflect.KClass
interface RepositoryI<T, E: EntityI<T?>> { interface RepositoryI<E: EntityI<*>> {
val entityName: KClass<E> val entityName: KClass<E>
} var requester: Requester
fun getClassName(): String {
@Experimental return entityName.simpleName!!
abstract class Repository<T, E: EntityI<T?>>(override val entityName: KClass<E>): RepositoryI<T, E> {
abstract var requester: Requester
abstract fun getClassName(): String
fun <T> findById(id: T): EntityI<T?>? {
val sql = requester.getQuery(entityName.toString())
return when (val e = EntitiesCollections().get(id)) {
null -> {
// TODO create Request
Serializer().deserialize<T, EntityI<T?>>("""{"plop", "plip"}""")
}
else -> e
}
} }
} }