parameterized @external field resolver should not generate resolver methods
Issue Description
NOTE: this is a duplicate of #1383, but since I'm unable to re-open the issue I've recreated it here. Feel free to close this one as duplicate and re-open the original on my behalf to continue the discussion there.
Take a look at the following example in the Apollo documentation.
Currently, this would generate a set of classes as follows:
class Product {
id, shippingEstimate; // lazy shorthand
}
interface IQueryResolver {
Product someRootResolver(...);
}
interface IProductResolver {
Integer weight(Product product);
}
But it should not generate a separate IProductResolver interface for the weight field since it is marked @external, meaning this subgraph cannot resolve it. Instead, it should just generate a plain old field as part of the Product class, and assume that some other subgraph will resolve it:
class Product {
id, weight, shippingEstimate; // lazy shorthand
}
interface IQueryResolver {
Product someRootResolver(...);
}
Setting generateParameterizedFieldsResolvers to false does indeed generate the java type correctly, but the plugin should be smart enough to realize that @external parameterized fields can't possibly be resolved by the current subgraph and so should automatically be omitted from resolver method generation even when generateParameterizedFieldsResolvers is set to true.
EDIT: I realize now that the server behavior isn't controlled by this plugin, so I've opened a sister ticket there.