aboutsummaryrefslogtreecommitdiff
path: root/java/dagger/internal/codegen/writing/MapFactoryCreationExpression.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/dagger/internal/codegen/writing/MapFactoryCreationExpression.java')
-rw-r--r--java/dagger/internal/codegen/writing/MapFactoryCreationExpression.java23
1 files changed, 15 insertions, 8 deletions
diff --git a/java/dagger/internal/codegen/writing/MapFactoryCreationExpression.java b/java/dagger/internal/codegen/writing/MapFactoryCreationExpression.java
index 1f857dbf1..3512353e7 100644
--- a/java/dagger/internal/codegen/writing/MapFactoryCreationExpression.java
+++ b/java/dagger/internal/codegen/writing/MapFactoryCreationExpression.java
@@ -22,8 +22,9 @@ import static dagger.internal.codegen.binding.SourceFiles.mapFactoryClassName;
import static dagger.internal.codegen.extension.DaggerCollectors.toOptional;
import androidx.room.compiler.processing.XProcessingEnv;
-import androidx.room.compiler.processing.XType;
+import com.squareup.javapoet.ClassName;
import com.squareup.javapoet.CodeBlock;
+import com.squareup.javapoet.TypeName;
import dagger.assisted.Assisted;
import dagger.assisted.AssistedFactory;
import dagger.assisted.AssistedInject;
@@ -58,18 +59,24 @@ final class MapFactoryCreationExpression extends MultibindingFactoryCreationExpr
@Override
public CodeBlock creationExpression() {
- CodeBlock.Builder builder = CodeBlock.builder().add("$T.", mapFactoryClassName(binding));
+ ClassName mapFactoryClassName = mapFactoryClassName(binding);
+ CodeBlock.Builder builder = CodeBlock.builder().add("$T.", mapFactoryClassName);
+ TypeName valueTypeName = TypeName.OBJECT;
if (!useRawType()) {
MapType mapType = MapType.from(binding.key());
// TODO(ronshapiro): either inline this into mapFactoryClassName, or add a
// mapType.unwrappedValueType() method that doesn't require a framework type
- XType valueType =
+ valueTypeName =
Stream.of(TypeNames.PROVIDER, TypeNames.PRODUCER, TypeNames.PRODUCED)
.filter(mapType::valuesAreTypeOf)
.map(mapType::unwrappedValueType)
.collect(toOptional())
- .orElseGet(mapType::valueType);
- builder.add("<$T, $T>", mapType.keyType().getTypeName(), valueType.getTypeName());
+ .orElseGet(mapType::valueType)
+ .getTypeName();
+ builder.add(
+ "<$T, $T>",
+ mapType.keyType().getTypeName(),
+ valueTypeName);
}
builder.add("builder($L)", binding.dependencies().size());
@@ -78,12 +85,12 @@ final class MapFactoryCreationExpression extends MultibindingFactoryCreationExpr
ContributionBinding contributionBinding = graph.contributionBinding(dependency.key());
builder.add(
".put($L, $L)",
- getMapKeyExpression(contributionBinding, componentImplementation.name(), processingEnv),
+ getMapKeyExpression(
+ contributionBinding, componentImplementation.name(), processingEnv),
multibindingDependencyExpression(dependency));
}
- builder.add(".build()");
- return builder.build();
+ return builder.add(".build()").build();
}
@AssistedFactory