Skip to content

Instantly share code, notes, and snippets.

@tfcporciuncula
Last active March 8, 2023 00:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tfcporciuncula/8106540efab3d9505a39ed093e84a45a to your computer and use it in GitHub Desktop.
Save tfcporciuncula/8106540efab3d9505a39ed093e84a45a to your computer and use it in GitHub Desktop.
class GreetingHandler @AssistedInject constructor(
@Assisted private val assistedArg: String,
@SpecialGreeting1 private val specialGreeting1: String,
@SpecialGreeting2 private val specialGreeting2: String,
private val greetings: Set<String>,
private val greetingConcatenator: Lazy<GreetingConcatenator>,
private val platformGreeter: Provider<PlatformGreeter>,
) {
@AssistedFactory
interface Factory {
fun create(assistedArg: String): GreetingHandler
}
fun handleAllGreetings() {
val concatenatedGreeting = greetingConcatenator.get().concatenate(greetings)
platformGreeter.get().greet(finalGreeting = concatenatedGreeting)
Log.d("GreetingHandler", "assistedArg = $assistedArg")
}
fun handleSpecialGreeting1() {
platformGreeter.get().greet(finalGreeting = specialGreeting1)
Log.d("GreetingHandler", "assistedArg = $assistedArg")
}
fun handleSpecialGreeting2() {
platformGreeter.get().greet(finalGreeting = specialGreeting2)
Log.d("GreetingHandler", "assistedArg = $assistedArg")
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment