Reputation: 503
I am getting errors with the following block of DSL script.
val DerbyDbDataFolder: File = file("DerbyDbData")
val DerbyLog: File = file("derby.log")
tasks {
var cleanDerbyDbData by creating (Delete::class) {
delete(DerbyDbDataFolder)
delete(DerbyLog)
}
"clean" {
dependsOn(cleanDerbyDbData)
}
}
But I get the following error message.
var cleanDerbyDbData by creating (Delete::class) {
^ Missing 'setValue(Nothing?, KProperty<*>, Delete)' method on delegate of type 'PolymorphicDomainObjectContainer<Delete>'
What is this error message and how do I fix it?
Upvotes: 1
Views: 238
Reputation: 366
Define cleanDerbyDbData
as a val
instead of var
:
val DerbyDbDataFolder: File = file("DerbyDbData")
val DerbyLog: File = file("derby.log")
tasks {
val cleanDerbyDbData by creating (Delete::class) {
delete(DerbyDbDataFolder)
delete(DerbyLog)
}
"clean" {
dependsOn(cleanDerbyDbData)
}
}
cleanDerbyDbData
is a delegated property, and for it to be a var
, the expression to the right of by
must return a mutable value. The PolymorphicDomainObjectContainerDelegateProvider returned by the creating()
function doesn't provide any setters, and this is the error you're seeing.
Upvotes: 1