bodiam
05/11/2019, 4:25 AMjacob
05/11/2019, 4:26 AMbodiam
05/11/2019, 4:26 AMjacob
05/11/2019, 4:28 AMRandomizer<*>
bodiam
05/11/2019, 4:30 AMjacob
05/11/2019, 4:31 AMclass Field {
fun getName() = ""
}
class RandomizerContext {
fun getCurrentRandomizationDepth() = 0
fun getCurrentField() = ""
}
class Randomizer<T>
fun getRandomizerByField(field: Field, context: RandomizerContext): Randomizer<*>? {
// return custom randomizer based on the context
if (field.getName().equals("name") && context.getCurrentRandomizationDepth() === 0) {
return { "foo" }
}
if (field.getName().equals("name") && context.getCurrentField().equals("bestFriend")) {
return { "bar" }
}
return null
}
bodiam
05/11/2019, 4:31 AMjacob
05/11/2019, 4:32 AMbodiam
05/11/2019, 4:32 AMjacob
05/11/2019, 4:33 AMbodiam
05/11/2019, 4:33 AMjacob
05/11/2019, 4:35 AMbodiam
05/11/2019, 4:35 AMjacob
05/11/2019, 4:37 AMbodiam
05/11/2019, 4:37 AMjacob
05/11/2019, 4:42 AMbodiam
05/11/2019, 4:43 AMjacob
05/11/2019, 4:47 AMbodiam
05/11/2019, 4:51 AMjacob
05/11/2019, 5:00 AMfun getRandomizerByField(field: Field, context: RandomizerContext): Randomizer<*>? {
// return custom randomizer based on the context
if (field.getName().equals("name") && context.getCurrentRandomizationDepth() === 0) {
return object: Randomizer<Any> {
override val randomValue = "foo"
}
}
if (field.getName().equals("name") && context.getCurrentField().equals("bestFriend")) {
return object: Randomizer<Any> {
override val randomValue = "bar"
}
}
return null
}
work?bodiam
05/11/2019, 5:02 AMjacob
05/11/2019, 5:07 AMbodiam
05/11/2019, 5:07 AMjacob
05/11/2019, 5:07 AMbodiam
05/11/2019, 5:07 AMjacob
05/11/2019, 5:08 AMbodiam
05/11/2019, 5:09 AMjacob
05/11/2019, 5:09 AMbodiam
05/11/2019, 5:09 AMjacob
05/11/2019, 5:11 AMbodiam
05/11/2019, 5:13 AMjacob
05/11/2019, 5:20 AMbodiam
05/11/2019, 5:21 AMjacob
05/11/2019, 5:22 AMbodiam
05/11/2019, 5:31 AMkarelpeeters
05/11/2019, 7:33 AMDico
05/11/2019, 11:38 AMRandomizer
in one of your source files