Skip to content

Commit

Permalink
# added findById as convenient method
Browse files Browse the repository at this point in the history
  • Loading branch information
sbra0902 committed Jul 1, 2020
1 parent 1f958e9 commit 589ed9b
Showing 1 changed file with 8 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ class EntityGeneration {
var companionSpec = TypeSpec.companionObjectBuilder()
companionSpec.addProperty(idConstant())
companionSpec.addFunctions(create(holder))
companionSpec.addFunction(findById(holder))

for (query in holder.queries) {
query.queryFun(holder.dbName, holder)?.let {
Expand Down Expand Up @@ -67,6 +68,13 @@ class EntityGeneration {

}

private fun findById(holder: EntityHolder): FunSpec {
return FunSpec.builder("findById").addModifiers(KModifier.PUBLIC).addParameter("id", String::class).addAnnotation(JvmStatic::class)
.addStatement("val result = %T.$GET_DOCUMENT_METHOD(id, %S)", PersistenceConfig::class, holder.dbName)
.addStatement("return if(result != null) %N(result) else null", holder.entitySimpleName)
.returns(holder.entityTypeName.copy(true)).build()
}


private fun idConstant(): PropertySpec {
return PropertySpec.builder("_ID", String::class, KModifier.PUBLIC, KModifier.FINAL).initializer("%S", "_id").addAnnotation(JvmField::class).build()
Expand Down

0 comments on commit 589ed9b

Please sign in to comment.