Skip to content

Commit

Permalink
Remove memory cache
Browse files Browse the repository at this point in the history
  • Loading branch information
lwj1994 committed Mar 11, 2022
1 parent f9591e6 commit dea39b1
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 62 deletions.
35 changes: 7 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,51 +103,31 @@ build project and we will get a Registry class.
* this class is generated by https://github.com/lwj1994/ormkv for
* [com.lwjlol.ormkv.demo.UserInfo], Please don't modify it!
*/
public class UserRegistry {
public object UserRegistry {
private val kvHandler: OrmKvHandler = com.lwjlol.ormkv.demo.KvStore.sharedPreferencesHandler

private var _name: String? = null

public var name: String
get() {
if (_name == null) {
_name = kvHandler.get("com.lwjlol.ormkv.demo.UserInfo_name", "david") as String
}
return _name!!
return kvHandler.get("com.lwjlol.ormkv.demo.UserInfo_name", "david") as String
}
set(`value`) {
if (_name == value) return
_name = value
kvHandler.put("com.lwjlol.ormkv.demo.UserInfo_name", value)
}

private var _id: Long? = null

public var id: Long
get() {
if (_id == null) {
_id = kvHandler.get("com.lwjlol.ormkv.demo.UserInfo_id", 12312312) as Long
}
return _id!!
return kvHandler.get("com.lwjlol.ormkv.demo.UserInfo_id", 12312312) as Long
}
set(`value`) {
if (_id == value) return
_id = value
kvHandler.put("com.lwjlol.ormkv.demo.UserInfo_id", value)
}

private var _isMan: Boolean? = null

public var isMan: Boolean
get() {
if (_isMan == null) {
_isMan = kvHandler.get("com.lwjlol.ormkv.demo.UserInfo_isMan", false) as Boolean
}
return _isMan!!
return kvHandler.get("com.lwjlol.ormkv.demo.UserInfo_isMan", false) as Boolean
}
set(`value`) {
if (_isMan == value) return
_isMan = value
kvHandler.put("com.lwjlol.ormkv.demo.UserInfo_isMan", value)
}

Expand Down Expand Up @@ -189,11 +169,10 @@ public class UserRegistry {
then we can use the Registry class set/get value directly.

```kotlin
val userRegistry = UserRegistry()
userRegistry.name = "Mike"
UserRegistry.name = "Mike"

Log.d(tag, userRegistry.toString())
Log.d(tag, userRegistry.name)
Log.d(tag, UserRegistry.toString())
Log.d(tag, UserRegistry.name)
```

## KSP
Expand Down
4 changes: 2 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ dependencies {
implementation(project(":sharedPreferences"))
implementation(project(":mmkv"))
implementation(kotlin("stdlib"))
// ksp(project(":compiler"))
kapt(project(":compiler"))
ksp(project(":compiler"))
// kapt(project(":compiler"))
implementation(project(":compiler"))
}

Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/com/lwjlol/ormkv/demo/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class MainActivity : AppCompatActivity() {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
updateText()
val user = User()
val user = User


// UserSp.name
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ class KspOrmkvProcessor(
name = className
}
val fileName = if (classNameArg.isNotEmpty()) name else "${name}${END_FIX}"
val typeSpec = TypeSpec.classBuilder(fileName)
val typeSpec = TypeSpec.objectBuilder(fileName)
.addKdoc("this class is generated by https://github.com/lwj1994/ormkv for [${packageName}.${className}], Please don't modify it!")

if (handlerCodeReferenceArg.isEmpty()) {
Expand Down Expand Up @@ -131,7 +131,6 @@ class KspOrmkvProcessor(
}
}
val memberTypeName = member.type.resolve().declaration.qualifiedName?.asString() ?: ""
val valueName = "_${member.name?.asString()}"
val propertyName = member.name?.asString() ?: ""
val keyUnitName = columnName.ifEmpty { member.name?.asString() ?: "" }
var getName = ""
Expand Down Expand Up @@ -186,13 +185,13 @@ class KspOrmkvProcessor(
return@forEachIndexed
}
val typeName = ClassName.bestGuess(memberTypeName)
typeSpec.addProperty(
PropertySpec.builder(valueName, typeName.copy(nullable = true))
.initializer("null")
.addModifiers(KModifier.PRIVATE)
.mutable(true)
.build()
)
// typeSpec.addProperty(
// PropertySpec.builder(valueName, typeName.copy(nullable = true))
// .initializer("null")
// .addModifiers(KModifier.PRIVATE)
// .mutable(true)
// .build()
// )

val setName = """put("$keyName", value)"""
typeSpec.addProperty(
Expand All @@ -202,19 +201,14 @@ class KspOrmkvProcessor(
FunSpec.getterBuilder()
.addCode(
"""
|if ($valueName == null) {
| $valueName = ${HANDLER}.$getName
|}
|return $valueName!!
|return ${HANDLER}.$getName
|""".trimMargin()
)
.build()
)
.setter(
FunSpec.setterBuilder().addParameter("value", typeName).addCode(
"""
|if ($valueName == value) return
|$valueName = value
|${HANDLER}.$setName
|""".trimMargin()
).build()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ class OrmkvProcessor : AbstractProcessor() {
packageName
}
val fileName = if (entity.className.isNotEmpty()) name else "${name}_${END_FIX}"
val typeSpec = TypeSpec.classBuilder(fileName)
val typeSpec = TypeSpec.objectBuilder(fileName)
.addKdoc("this class is generated by https://github.com/lwj1994/ormkv for [${packageName}.${className}], Please don't modify it!")

typeSpec.addProperty(
Expand All @@ -96,7 +96,6 @@ class OrmkvProcessor : AbstractProcessor() {
val columnName = spColumnInfo?.name ?: ""
val clear = spColumnInfo?.enableReset ?: true
val memberTypeName = member.asType().asTypeName()
val valueName = "_${member.simpleName}"
val propertyName = member.simpleName.toString()
val typeName =
when {
Expand Down Expand Up @@ -167,34 +166,21 @@ class OrmkvProcessor : AbstractProcessor() {

val setName = """put("$keyName", value)"""

typeSpec.addProperty(
PropertySpec.builder(valueName, typeName.copy(true))
.initializer("null")
.addModifiers(KModifier.PRIVATE)
.mutable(true)
.build()
)

typeSpec.addProperty(
PropertySpec.builder(propertyName, typeName)
.mutable(true)
.getter(
FunSpec.getterBuilder()
.addCode(
"""
|if ($valueName == null) {
| $valueName = $HANDLER.$getName
|}
|return $valueName!!
|return $HANDLER.$getName
|""".trimMargin()
)
.build()
)
.setter(
FunSpec.setterBuilder().addParameter("value", typeName).addCode(
"""
|if ($valueName == value) return
|$valueName = value
|$HANDLER.$setName
|""".trimMargin()
).build()
Expand Down

0 comments on commit dea39b1

Please sign in to comment.