graphql.execution.MergedSelectionSet Maven / Gradle / Ivy
package graphql.execution;
import com.google.common.collect.ImmutableList;
import graphql.Assert;
import graphql.PublicApi;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
@PublicApi
public class MergedSelectionSet {
private final Map subFields;
private MergedSelectionSet(Map subFields) {
this.subFields = Assert.assertNotNull(subFields);
}
public Map getSubFields() {
return subFields;
}
public List getSubFieldsList() {
return ImmutableList.copyOf(subFields.values());
}
public int size() {
return subFields.size();
}
public Set keySet() {
return subFields.keySet();
}
public MergedField getSubField(String key) {
return subFields.get(key);
}
public List getKeys() {
return ImmutableList.copyOf(keySet());
}
public boolean isEmpty() {
return subFields.isEmpty();
}
public static Builder newMergedSelectionSet() {
return new Builder();
}
public static class Builder {
private Map subFields = new LinkedHashMap<>();
private Builder() {
}
public Builder subFields(Map subFields) {
this.subFields = subFields;
return this;
}
public MergedSelectionSet build() {
return new MergedSelectionSet(subFields);
}
}
}