private void emitInitialStateGetter(TypeSpec.Builder intentBuilderTypeBuilder) {
MethodSpec.Builder initialStateGetterForHensonBuilder =
MethodSpec.methodBuilder(INITIAL_STATE_METHOD)
.addModifiers(Modifier.PUBLIC)
.addModifiers(Modifier.STATIC)
.addParameter(get("android.content", "Context"), "context")
.returns(get(target.classPackage, builderClassName(), INITIAL_STATE_CLASS));
initialStateGetterForHensonBuilder.addStatement(
"final $T intent = new $T(context, getClassDynamically($S))",
ClassName.get("android.content", "Intent"),
ClassName.get("android.content", "Intent"),
target.getFQN());
initialStateGetterForHensonBuilder.addStatement(
"final $T bundler = $T.create()", Bundler.class, Bundler.class);
initialStateGetterForHensonBuilder.addStatement(
"return new $L(bundler, intent)", INITIAL_STATE_CLASS);
intentBuilderTypeBuilder.addMethod(initialStateGetterForHensonBuilder.build());
}