[FIR] Automatically generated abstract classes instead of interfaces if possible

This commit is contained in:
Dmitriy Novozhilov
2019-10-18 14:25:34 +03:00
parent 6b48112a2b
commit 615d3aafef
166 changed files with 1143 additions and 915 deletions
@@ -81,3 +81,9 @@ elementName.configure {
- `defaultNull(fieldName, [withGetter: Boolean])`
- If some fields should be `lateinit` you describe them in call `lateinit(vararg fields: String)`
- If you use some types that shoub be imported list them in method `useTypes(vararg types: Type/Element)`
# Notes
- There is algorithm that automatically makes as most abstract classes instead of interfaces as possible. If you want to some `Element` or `Implementation` should be always an interface you should:
- call `shouldBeAnInterface` when configuring a `Element` in `NodeConfigurator.kt`
- specify `kind = Interface` when configuring an `Implementation` in `ImplementationConfigurator.kt`