io.smallrye.graphql.client.core.InlineFragment Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of smallrye-graphql-client-api Show documentation
Show all versions of smallrye-graphql-client-api Show documentation
SmallRye specific Client API, extending the MicroProfile client api, allowing us to play with the api first before we move it to the spec
package io.smallrye.graphql.client.core;
import static io.smallrye.graphql.client.core.utils.ServiceUtils.getNewInstanceOf;
import static java.util.Arrays.asList;
import static java.util.Collections.emptyList;
import java.util.List;
/**
* Represents an inline fragment in a GraphQL document. This can be used
* anywhere where a field is expected (thus it implements `FieldOrFragment`).
*/
public interface InlineFragment extends FieldOrFragment {
static InlineFragment on(String type, FieldOrFragment... fields) {
InlineFragment fragment = getNewInstanceOf(InlineFragment.class);
fragment.setType(type);
fragment.setDirectives(emptyList());
fragment.setFields(asList(fields));
return fragment;
}
static InlineFragment on(String type, List directives, FieldOrFragment... fields) {
InlineFragment fragment = getNewInstanceOf(InlineFragment.class);
fragment.setType(type);
fragment.setDirectives(directives);
fragment.setFields(asList(fields));
return fragment;
}
static InlineFragment on(FieldOrFragment... fields) {
return on("", fields);
}
static InlineFragment on(List directives, FieldOrFragment... fields) {
return on("", directives, fields);
}
String getType();
void setType(String name);
List getFields();
void setFields(List fields);
List getDirectives();
void setDirectives(List directives);
}