ImmutableList.Builder<String> constructorTokens = ImmutableList.builder();
for (Entry<Key, String> entry : descriptor.providerNames().entrySet()) {
Key key = entry.getKey();
String providerName = entry.getValue();
writer.emitField("Provider<" + key.getType() + ">", providerName, EnumSet.of(PRIVATE, FINAL));
Optional<String> qualifier = key.getQualifier();
String qualifierPrefix = qualifier.isPresent() ? "@" + qualifier.get() + " " : "";
constructorTokens.add(qualifierPrefix + "Provider<" + key.getType() + ">").add(providerName);
}