Skip to content

Commit 58c6a64

Browse files
committed
Merge branch 'private-release/v1.2.5-221' into private-release/v1.2.5-223
2 parents c8d1723 + b1cdf61 commit 58c6a64

7 files changed

Lines changed: 37 additions & 39 deletions

File tree

src/main/kotlin/eu/ibagroup/formainframe/config/ConfigDeclaration.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,15 @@ import eu.ibagroup.formainframe.config.connect.ZOSMFConnectionConfigDeclaration
2323
interface ConfigDeclarationFactory {
2424

2525
/** Creates instance of [ConfigDeclaration]. */
26-
fun buildConfigDeclaration(crudable: Crudable): ConfigDeclaration<*>
26+
fun buildConfigDeclaration(): ConfigDeclaration<*>
2727
}
2828

2929
/**
3030
* Declares config class, that will be stored in persisted state [ConfigService].
3131
* @param T template parameter that specifies config class.
32-
* @property crudable instance of [Crudable] through which to work with config data.
3332
* @author Valiantsin Krus
3433
*/
35-
abstract class ConfigDeclaration<T: Any>(val crudable: Crudable) {
34+
abstract class ConfigDeclaration<T: Any> {
3635

3736
/** Instance of connection config class */
3837
abstract val clazz: Class<out T>
@@ -75,8 +74,11 @@ abstract class ConfigDeclaration<T: Any>(val crudable: Crudable) {
7574
}
7675

7776

78-
/** Provider decider in for config class. */
79-
abstract fun getDecider(): ConfigDecider<T>
77+
/**
78+
* Provider decider in for config class.
79+
* @param crudable instance of [Crudable] through which to work with config data.
80+
* */
81+
abstract fun getDecider(crudable: Crudable): ConfigDecider<T>
8082

8183
/** Builds configurable that will be displayed in settings. */
8284
open fun getConfigurable(): BoundSearchableConfigurable? = null

src/main/kotlin/eu/ibagroup/formainframe/config/ConfigServiceImpl.kt

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class ConfigServiceImpl : ConfigService {
7777
/** List of registered config declarations */
7878
private val configDeclarations: List<ConfigDeclaration<out Any>> by lazy {
7979
ConfigDeclaration.EP.extensionList.map {
80-
it.buildConfigDeclaration(crudable)
80+
it.buildConfigDeclaration()
8181
}
8282
}
8383

@@ -201,15 +201,17 @@ internal fun makeCrudableWithoutListeners(
201201
credentialsGetter: () -> MutableList<Credentials> = { mutableListOf() },
202202
stateGetter: () -> ConfigStateV2,
203203
): Crudable {
204+
lateinit var crudable: Crudable
205+
204206
val crudableLists = CrudableLists(
205-
addFilter = object: AddFilter {
207+
addFilter = object : AddFilter {
206208
override operator fun <T : Any> invoke(clazz: Class<out T>, addingRow: T): Boolean {
207-
return ConfigService.instance.getConfigDeclaration(clazz).getDecider().canAdd(addingRow)
209+
return ConfigService.instance.getConfigDeclaration(clazz).getDecider(crudable).canAdd(addingRow)
208210
}
209211
},
210-
updateFilter = object: UpdateFilter {
211-
override operator fun <T: Any> invoke(clazz: Class<out T>, currentRow: T, updatingRow: T): Boolean {
212-
return ConfigService.instance.getConfigDeclaration(clazz).getDecider().canUpdate(currentRow, updatingRow)
212+
updateFilter = object : UpdateFilter {
213+
override operator fun <T : Any> invoke(clazz: Class<out T>, currentRow: T, updatingRow: T): Boolean {
214+
return ConfigService.instance.getConfigDeclaration(clazz).getDecider(crudable).canUpdate(currentRow, updatingRow)
213215
}
214216
},
215217
nextUuidProvider = { UUID.randomUUID().toString() },
@@ -223,5 +225,7 @@ internal fun makeCrudableWithoutListeners(
223225
}
224226
}
225227
)
226-
return ConcurrentCrudable(crudableLists, SimpleReadWriteAdapter())
228+
229+
crudable = ConcurrentCrudable(crudableLists, SimpleReadWriteAdapter())
230+
return crudable
227231
}

src/main/kotlin/eu/ibagroup/formainframe/config/connect/ConnectionConfigDeclaration.kt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,13 @@ package eu.ibagroup.formainframe.config.connect
1212
import com.intellij.openapi.options.BoundSearchableConfigurable
1313
import eu.ibagroup.formainframe.config.ConfigDeclaration
1414
import eu.ibagroup.formainframe.config.connect.ui.CollectedConfigurable
15-
import eu.ibagroup.formainframe.utils.crudable.Crudable
1615

1716
/**
1817
* Abstract class to declare connection configs.
1918
* @param Connection The system (such as zosmf, cics etc.) connection class to work with (see [ConnectionConfigBase]).
20-
* @param crudable [Crudable] instance to get data from.
2119
* @author Valiantsin Krus
2220
*/
23-
abstract class ConnectionConfigDeclaration<Connection: ConnectionConfigBase>(crudable: Crudable)
24-
: ConfigDeclaration<Connection>(crudable) {
21+
abstract class ConnectionConfigDeclaration<Connection : ConnectionConfigBase> : ConfigDeclaration<Connection>() {
2522

2623
companion object {
2724
/** list of available connection configurables. */

src/main/kotlin/eu/ibagroup/formainframe/config/connect/CredentialsConfigDeclaration.kt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,25 +18,24 @@ import eu.ibagroup.formainframe.utils.crudable.Crudable
1818
* Factory to create instance of [CredentialsConfigDeclaration].
1919
* @author Valiantsin Krus
2020
*/
21-
class CredentialsConfigDeclarationFactory: ConfigDeclarationFactory {
22-
override fun buildConfigDeclaration(crudable: Crudable): ConfigDeclaration<*> {
23-
return CredentialsConfigDeclaration(crudable)
21+
class CredentialsConfigDeclarationFactory : ConfigDeclarationFactory {
22+
override fun buildConfigDeclaration(): ConfigDeclaration<*> {
23+
return CredentialsConfigDeclaration()
2424
}
2525
}
2626

2727
/**
2828
* Declares config to work with credentials. It is the only class that is necessary to declare without
2929
* any logical load. All the logic of storing credentials securely is described in [CredentialService].
30-
* @param crudable instance of [Crudable] (not used in this class).
3130
* @author Valiantsin Krus
3231
*/
33-
class CredentialsConfigDeclaration(crudable: Crudable): ConfigDeclaration<Credentials>(crudable) {
32+
class CredentialsConfigDeclaration : ConfigDeclaration<Credentials>() {
3433

3534
override val clazz = Credentials::class.java
3635
override val configPriority = -100.0
3736

38-
override fun getDecider(): ConfigDecider<Credentials> {
39-
return object: ConfigDecider<Credentials>() {
37+
override fun getDecider(crudable: Crudable): ConfigDecider<Credentials> {
38+
return object : ConfigDecider<Credentials>() {
4039
override fun canUpdate(currentRow: Credentials, updatingRow: Credentials) = true
4140
override fun canAdd(row: Credentials) = true
4241
}

src/main/kotlin/eu/ibagroup/formainframe/config/connect/ZOSMFConnectionConfigDeclaration.kt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,22 @@ import eu.ibagroup.formainframe.utils.crudable.getByColumnLambda
2222
* @author Valiantsin Krus
2323
*/
2424
class ConnectionConfigDeclarationFactory : ConfigDeclarationFactory {
25-
override fun buildConfigDeclaration(crudable: Crudable): ConfigDeclaration<*> {
26-
return ZOSMFConnectionConfigDeclaration(crudable)
25+
override fun buildConfigDeclaration(): ConfigDeclaration<*> {
26+
return ZOSMFConnectionConfigDeclaration()
2727
}
2828
}
2929

3030
/**
3131
* Declares connection config that will represent connection to zosmf.
32-
* @param crudable instance of [Crudable] through which to work with config data.
3332
* @author Valiantsin Krus
3433
*/
35-
class ZOSMFConnectionConfigDeclaration(crudable: Crudable) :
36-
ConnectionConfigDeclaration<ConnectionConfig>(crudable) {
34+
class ZOSMFConnectionConfigDeclaration : ConnectionConfigDeclaration<ConnectionConfig>() {
3735

3836
override val clazz = ConnectionConfig::class.java
3937
override val useCredentials = true
4038
override val configPriority = 1.0
4139

42-
override fun getDecider(): ConfigDecider<ConnectionConfig> {
40+
override fun getDecider(crudable: Crudable): ConfigDecider<ConnectionConfig> {
4341
return object : ConfigDecider<ConnectionConfig>() {
4442
/**
4543
* Enables to add connection config only if no existing connection with such name found.

src/main/kotlin/eu/ibagroup/formainframe/config/ws/WorkingSetConfigDeclaration.kt

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ import eu.ibagroup.formainframe.utils.crudable.Crudable
2222
*/
2323
class FilesWorkingSetConfigDeclarationFactory : ConfigDeclarationFactory {
2424

25-
override fun buildConfigDeclaration(crudable: Crudable): ConfigDeclaration<*> {
26-
return object : WorkingSetConfigDeclaration<FilesWorkingSetConfig>(crudable, FilesWorkingSetConfig::class.java) {
25+
override fun buildConfigDeclaration(): ConfigDeclaration<*> {
26+
return object : WorkingSetConfigDeclaration<FilesWorkingSetConfig>(FilesWorkingSetConfig::class.java) {
2727
override val configPriority = 3.0
2828
override fun getConfigurable() = FilesWSConfigurable()
2929
}
@@ -36,8 +36,8 @@ class FilesWorkingSetConfigDeclarationFactory : ConfigDeclarationFactory {
3636
* @author Valiantsin Krus
3737
*/
3838
class JesWorkingSetConfigDeclarationFactory : ConfigDeclarationFactory {
39-
override fun buildConfigDeclaration(crudable: Crudable): ConfigDeclaration<*> {
40-
return object : WorkingSetConfigDeclaration<JesWorkingSetConfig>(crudable, JesWorkingSetConfig::class.java) {
39+
override fun buildConfigDeclaration(): ConfigDeclaration<*> {
40+
return object : WorkingSetConfigDeclaration<JesWorkingSetConfig>(JesWorkingSetConfig::class.java) {
4141
override val configPriority = 2.0
4242
override fun getConfigurable() = JesWsConfigurable()
4343
}
@@ -46,16 +46,14 @@ class JesWorkingSetConfigDeclarationFactory : ConfigDeclarationFactory {
4646

4747
/**
4848
* Abstract class with wrapped logic of working with working sets configs.
49-
* @param crudable instance of [Crudable] through which to work with config data.
5049
* @param clazz instance of class that implements [WorkingSetConfig].
5150
* @author Valiantsin Krus.
5251
*/
5352
abstract class WorkingSetConfigDeclaration<WS : WorkingSetConfig>(
54-
crudable: Crudable,
5553
override val clazz: Class<out WS>
56-
) : ConfigDeclaration<WS>(crudable) {
54+
) : ConfigDeclaration<WS>() {
5755

58-
override fun getDecider(): ConfigDecider<WS> {
56+
override fun getDecider(crudable: Crudable): ConfigDecider<WS> {
5957
return object : ConfigDecider<WS>() {
6058

6159
/**

src/test/kotlin/eu/ibagroup/formainframe/config/ConfigTestSpec.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,10 @@ class ConfigTestSpec : WithApplicationShouldSpec({
6161
val mockConfigServiceInstance = mockk<ConfigService>()
6262
every {
6363
mockConfigServiceInstance.getConfigDeclaration(ConnectionConfig::class.java)
64-
} returns ZOSMFConnectionConfigDeclaration(crudable)
64+
} returns ZOSMFConnectionConfigDeclaration()
6565
every {
6666
mockConfigServiceInstance.getConfigDeclaration(Credentials::class.java)
67-
} returns CredentialsConfigDeclaration(crudable)
67+
} returns CredentialsConfigDeclaration()
6868

6969
mockkObject(ConfigService)
7070
every { ConfigService.instance } returns mockConfigServiceInstance

0 commit comments

Comments
 (0)