/// <summary> /// 初始化辅助数据写入器。 /// </summary> /// <param name="dataWriter">原始数据写入器</param> /// <param name="valueFilter">数据筛选器</param> public DataFilterWriter(IDataWriter <TKey> dataWriter, IValueFilter <TKey> valueFilter) { this.dataWriter = dataWriter; ValueFilter = valueFilter; ValueInfo = new ValueFilterInfo <TKey>(); }
public bool Filter(ValueFilterInfo <TIn> valueInfo) { return(valueFilter.Filter(new ValueFilterInfo <TOut>( XConvert <TOut> .Convert(valueInfo.Key), valueInfo.Type, valueInfo.ValueCopyer ))); }
public bool Filter(ValueFilterInfo <int> valueInfo) { if (!Filter(valueInfo.ValueCopyer)) { return(false); } return(true); }
internal bool OnArrayFilter(IMessagePackWriter messagePackWriter, ValueFilterInfo <int> valueInfo, bool result) { if (arrayFiltering is null) { return(result); } var args = new MessagePackFilteringEventArgs <int>(messagePackWriter, valueInfo, result); arrayFiltering(this, ref args); return(args.Result); }
internal bool OnObjectFilter(IMessagePackWriter messagePackWriter, ValueFilterInfo <string> valueInfo, bool result) { if (objectFiltering is null) { return(result); } var args = new MessagePackFilteringEventArgs <string>(messagePackWriter, valueInfo, result); objectFiltering(this, ref args); return(args.Result); }
internal bool OnArrayFilter(IJsonWriter jsonWriter, ValueFilterInfo <int> valueInfo, bool result) { if (arrayFiltering is null) { return(result); } var args = new JsonFilteringEventArgs <int>(jsonWriter, valueInfo, result); arrayFiltering(this, ref args); return(args.Result); }
internal bool OnObjectFilter(IJsonWriter jsonWriter, ValueFilterInfo <string> valueInfo, bool result) { if (objectFiltering is null) { return(result); } var args = new JsonFilteringEventArgs <string>(jsonWriter, valueInfo, result); objectFiltering(this, ref args); return(args.Result); }
internal MessagePackFilteringEventArgs(IMessagePackWriter jsonWriter, ValueFilterInfo <TKey> valueInfo, bool result) { JsonWriter = jsonWriter; ValueInfo = valueInfo; Result = result; }
public bool Filter(ValueFilterInfo <int> valueInfo) { return(Filter(valueInfo.ValueCopyer)); }
public bool Filter(ValueFilterInfo <int> valueInfo) => Filter(valueInfo.ValueCopyer);
public bool Filter(ValueFilterInfo <string> valueInfo) => Filter(valueInfo.ValueCopyer);
internal JsonFilteringEventArgs(IJsonWriter jsonWriter, ValueFilterInfo <TKey> valueInfo, bool result) { JsonWriter = jsonWriter; ValueInfo = valueInfo; Result = result; }
public bool Filter(ValueFilterInfo <int> valueInfo) { reference = new TargetPathInfo(valueInfo.Key, reference.Parent); return(Filter(valueInfo.ValueCopyer)); }