graphql.execution.MergedSelectionSet Maven / Gradle / Ivy
package graphql.execution;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import graphql.Assert;
import graphql.PublicApi;
import java.util.List;
import java.util.Map;
import java.util.Set;
@PublicApi
public class MergedSelectionSet {
private final Map subFields;
private final List keys;
protected MergedSelectionSet(Map subFields) {
this.subFields = subFields == null ? ImmutableMap.of() : subFields;
this.keys = ImmutableList.copyOf(this.subFields.keySet());
}
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 keys;
}
public boolean isEmpty() {
return subFields.isEmpty();
}
public static Builder newMergedSelectionSet() {
return new Builder();
}
public static class Builder {
private Map subFields;
private Builder() {
}
public Builder subFields(Map subFields) {
this.subFields = subFields;
return this;
}
public MergedSelectionSet build() {
return new MergedSelectionSet(subFields);
}
}
}