-
Notifications
You must be signed in to change notification settings - Fork 16
Annotation Processor Arguments
Kripton Processor Annotation accepts different options:
For Java Annotation Processor:
android {
defaultConfig {
applicationId "com.abubusoft.kripton.basicsample"
javaCompileOptions {
annotationProcessorOptions {
arguments = [
"kripton.androidx" : "true"
"kripton.debug" : "true",
"kripton.log" : "true",
"kripton.schemaLocation": "${projectDir}/schemas".toString()
]
}
}
}For Kotlin Annotation Processor:
kapt {
arguments {
arg("kripton.androidx", "true"),
arg("kripton.debug", "true"),
arg("kripton.logger", "true"),
arg("kripton.schemaLocation","${projectDir}/schemas".toString())
}
}The accepted arguments are:
If true, enable kripton log during annotations processor's execution. This log includes info about generated classes. An example:
w: Note: Kripton Persistence Library v. 5.0.0
w: Note: param kripton.androidx = <unset>
w: Note: jetpack live data support is disabled
w: Note: param kripton.schemaLocation = <unset>
w: Note: schemas location is 'd:\projects\xxx\KotlinSample01\schemas'
w: Note: class 'ArticleBindMap' in package 'com.abubusoft.kripton.kotlin.sample01.model'
is generated by '@BindType' annotation processor
w: Note: class 'ChannelBindMap' in package 'com.abubusoft.kripton.kotlin.sample01.model'
is generated by '@BindType' annotation processor
...
The default value is false.
Kripton, for the moment use arch.LiveData to manage Live Data. If you need to use androidx.Live data instead, simply put this parameter to true.
The default value is false.
It allows specifying in which folder are generated DataSource schemas. If not defined, the default folder <project-dir>/schemas will be used. Otherwise, you can specify another folder (relative to the project folder).
The default value is "${projectDir}/schemas".toString().
This arguments, if it set as false, avoid that annotation processor generates log code. This is mainly used for ORM module. This argument override all data source's configuration on log configuration.
Just an example:
@BindDataSourceOptions(logEnabled = true,
populator = PersonPopulator.class,
cursorFactory = PersonCursorFactory.class,
databaseLifecycleHandler = PersonLifecycleHandler.class,
updateTasks = {
@BindDataSourceUpdateTask(version = 2, task = PersonUpdateTask.class)
})
@BindDataSource(daoSet = { DaoPerson.class }, fileName = "app.db" , log=true)
public interface AppWithConfigDataSource {
}With this configuration, Kritpon for default will generate log statements as usual. If you want to disable log code generation just configure the annotation processor with:
javaCompileOptions {
annotationProcessorOptions {
arguments = [
"kripton.log" : "false"
]
}
}It's particularly useful when you want to generate a release apk and you need to control logs generation in a centralized way.
Since Version 6.0.0
The default value is true.
- Introduction
- Goals & Features
- Kotlin
- Immutable or Mutable Pojo
- Annotation Processor Args
- Credits
- Articles
- Benchmarks
- Setup
- Tutorial
- Usage
- Dependencies and inspirations
- Stackoverflow
- Documentation
- SQL logging
- Data source options
- Indices
- SQL Type adapter
- Global SQL Type adapter
- Constraints
- Live data: welcome Architectural components!!
- Paged Live data
- Dynamic parts
- Transactional and batch operations
- Async Transactional and batch operations
- Global transaction
- Support for immutable POJO
- Generate Content provider
- Generate Database schema generation
- Database migration
- BindSqlColumn
- BindContentProvider
- BindContentProviderEntry
- BindContentProviderPath
- BindDao
- BindDaoMany2Many
- BindDataSource
- BindDataSourceOptions
- BindDataSourceUpdateTask
- BindIndex
- BindSqlRelation
- BindSqlAdapter
- BindSqlChildSelect
- BindSqlDelete
- BindSqlDynamicOrderBy
- BindSqlDynamicWhere
- BindSqlDynamicWhereParams
- BindSqlInsert
- BindSqlPageSize
- BindSqlParam
- BindSqlSelect
- BindSqlUpdate
- BindSqlType
- BindSqlTransaction