public Selection RewriteSelection( SelectionOptimizerContext context, Selection selection) { for (var i = 0; i < _optimizer.Count; i++) { if (_optimizer[i].CanHandle(selection)) { selection = _optimizer[i].RewriteSelection(context, selection); } } for (var i = 0; i < _fieldHandlers.Count; i++) { if (_fieldHandlers[i].CanHandle(selection)) { IProjectionFieldHandler fieldHandler = _fieldHandlers[i]; for (var m = 0; m < _fieldInterceptors.Count; m++) { if (_fieldInterceptors[m].CanHandle(selection)) { fieldHandler = fieldHandler.Wrap(_fieldInterceptors[m]); } } return(ProjectionSelection.From( selection, fieldHandler)); } } return(selection); }
private bool AllowFragmentDeferral( CompilerContext context, FragmentSpreadNode fragmentSpread, FragmentDefinitionNode fragmentDefinition) { if (context.Optimizers.Count == 0) { return(true); } var optimizerContext = new SelectionOptimizerContext(this, context); if (context.Optimizers.Count == 1) { return(context.Optimizers[0].AllowFragmentDeferral( optimizerContext, fragmentSpread, fragmentDefinition)); } for (var i = 0; i < context.Optimizers.Count; i++) { if (!context.Optimizers[i].AllowFragmentDeferral( optimizerContext, fragmentSpread, fragmentDefinition)) { return(false); } } return(true); }
public bool AllowFragmentDeferral( SelectionOptimizerContext context, FragmentSpreadNode fragmentSpread, FragmentDefinitionNode fragmentDefinition) { throw new NotImplementedException(); }
public bool AllowFragmentDeferral( SelectionOptimizerContext context, FragmentSpreadNode fragmentSpread, FragmentDefinitionNode fragmentDefinition) { return(false); }
public void OptimizeSelectionSet(SelectionOptimizerContext context) { var processedFields = new HashSet <string>(); while (!processedFields.SetEquals(context.Fields.Keys)) { var fieldsToProcess = new HashSet <string>(context.Fields.Keys); fieldsToProcess.ExceptWith(processedFields); foreach (var field in fieldsToProcess) { context.Fields[field] = _provider.RewriteSelection(context, context.Fields[field]); processedFields.Add(field); } } }
private void OptimizeSelectionSet(CompilerContext context) { if (context.Optimizers.Count == 0) { return; } var optimizerContext = new SelectionOptimizerContext(this, context); if (context.Optimizers.Count == 1) { context.Optimizers[0].OptimizeSelectionSet(optimizerContext); return; } for (var i = 0; i < context.Optimizers.Count; i++) { context.Optimizers[i].OptimizeSelectionSet(optimizerContext); } }
public bool AllowFragmentDeferral( SelectionOptimizerContext context, InlineFragmentNode fragment) { throw new NotImplementedException(); }
public void OptimizeSelectionSet(SelectionOptimizerContext context) { throw new NotImplementedException(); }
public Selection RewriteSelection( SelectionOptimizerContext context, Selection selection) { throw new NotImplementedException(); }
public bool AllowFragmentDeferral( SelectionOptimizerContext context, InlineFragmentNode fragment) { return(false); }