public void Initialize() { this.clientEdmModel = new ClientEdmModel(ODataProtocolVersion.V4); this.clientEdmModel.GetOrCreateEdmType(typeof(TestCustomer)); this.clientEdmModel.GetOrCreateEdmType(typeof(TestOrder)); this.materializerContext = new TestMaterializerContext() { Model = this.clientEdmModel }; this.ordersProperty = this.clientEdmModel.GetClientTypeAnnotation(typeof(TestCustomer)).GetProperty("Orders", false); }
/// <summary> /// Initializes a new instance of the <see cref="EntryValueMaterializationPolicy" /> class. /// </summary> /// <param name="context">The context.</param> /// <param name="entityTrackingAdapter">The entity tracking adapter.</param> /// <param name="lazyPrimitivePropertyConverter">The lazy primitive property converter.</param> /// <param name="nextLinkTable">The next link table.</param> internal EntryValueMaterializationPolicy( IODataMaterializerContext context, EntityTrackingAdapter entityTrackingAdapter, DSClient.SimpleLazy<PrimitivePropertyConverter> lazyPrimitivePropertyConverter, Dictionary<IEnumerable, DataServiceQueryContinuation> nextLinkTable) : base(context, lazyPrimitivePropertyConverter) { this.nextLinkTable = nextLinkTable; this.EntityTrackingAdapter = entityTrackingAdapter; }
/// <summary> /// Initializes a new instance of the <see cref="EntryValueMaterializationPolicy" /> class. /// </summary> /// <param name="context">The context.</param> /// <param name="entityTrackingAdapter">The entity tracking adapter.</param> /// <param name="lazyPrimitivePropertyConverter">The lazy primitive property converter.</param> /// <param name="nextLinkTable">The next link table.</param> internal EntryValueMaterializationPolicy( IODataMaterializerContext context, EntityTrackingAdapter entityTrackingAdapter, DSClient.SimpleLazy <PrimitivePropertyConverter> lazyPrimitivePropertyConverter, Dictionary <IEnumerable, DataServiceQueryContinuation> nextLinkTable) : base(context, lazyPrimitivePropertyConverter) { this.nextLinkTable = nextLinkTable; this.EntityTrackingAdapter = entityTrackingAdapter; }
public void Initialize() { this.clientEdmModel = new ClientEdmModel(ODataProtocolVersion.V4); this.clientEdmModel.GetOrCreateEdmType(typeof(TestCustomer)); this.clientEdmModel.GetOrCreateEdmType(typeof(TestOrder)); this.materializerContext = new TestMaterializerContext() { Model = this.clientEdmModel }; this.ordersProperty = this.clientEdmModel.GetClientTypeAnnotation(typeof(TestCustomer)).GetProperty("Orders", UndeclaredPropertyBehavior.ThrowException); }
/// <summary> /// Initializes a new instance of the <see cref="ODataEntriesEntityMaterializer" /> class. /// </summary> /// <param name="entries">The entries.</param> /// <param name="materializerContext">The materializer context.</param> /// <param name="entityTrackingAdapter">The entity tracking adapter.</param> /// <param name="queryComponents">The query components.</param> /// <param name="expectedType">The expected type.</param> /// <param name="materializeEntryPlan">The materialize entry plan.</param> /// <param name="format">The format.</param> public ODataEntriesEntityMaterializer( IEnumerable<ODataEntry> entries, IODataMaterializerContext materializerContext, EntityTrackingAdapter entityTrackingAdapter, QueryComponents queryComponents, Type expectedType, ProjectionPlan materializeEntryPlan, ODataFormat format) : base(materializerContext, entityTrackingAdapter, queryComponents, expectedType, materializeEntryPlan) { this.format = format; this.feedEntries = entries.GetEnumerator(); }
/// <summary> /// Initializes a new instance of the <see cref="ODataMaterializer" /> class. /// </summary> /// <param name="materializerContext">The materializer context.</param> /// <param name="expectedType">The expected type.</param> protected ODataMaterializer(IODataMaterializerContext materializerContext, Type expectedType) { this.ExpectedType = expectedType; this.MaterializerContext = materializerContext; this.nextLinkTable = new Dictionary <IEnumerable, DataServiceQueryContinuation>(DSClient.ReferenceEqualityComparer <IEnumerable> .Instance); this.lazyPrimitivePropertyConverter = new DSClient.SimpleLazy <PrimitivePropertyConverter>(() => new PrimitivePropertyConverter(this.Format)); this.primitiveValueMaterializationPolicy = new PrimitiveValueMaterializationPolicy(this.MaterializerContext, this.lazyPrimitivePropertyConverter); this.collectionValueMaterializationPolicy = new CollectionValueMaterializationPolicy(this.MaterializerContext, this.primitiveValueMaterializationPolicy); this.complexValueMaterializerPolicy = new ComplexValueMaterializationPolicy(this.MaterializerContext, this.lazyPrimitivePropertyConverter); this.collectionValueMaterializationPolicy.ComplexValueMaterializationPolicy = this.complexValueMaterializerPolicy; this.complexValueMaterializerPolicy.CollectionValueMaterializationPolicy = this.collectionValueMaterializationPolicy; }
/// <summary> /// Initializes a new instance of the <see cref="ODataReaderEntityMaterializer" /> class. /// </summary> /// <param name="odataMessageReader">The odata message reader.</param> /// <param name="reader">The reader.</param> /// <param name="materializerContext">The materializer context.</param> /// <param name="entityTrackingAdapter">The entity tracking adapter.</param> /// <param name="queryComponents">The query components.</param> /// <param name="expectedType">The expected type.</param> /// <param name="materializeEntryPlan">The materialize entry plan.</param> public ODataReaderEntityMaterializer( ODataMessageReader odataMessageReader, ODataReaderWrapper reader, IODataMaterializerContext materializerContext, EntityTrackingAdapter entityTrackingAdapter, QueryComponents queryComponents, Type expectedType, ProjectionPlan materializeEntryPlan) : base(materializerContext, entityTrackingAdapter, queryComponents, expectedType, materializeEntryPlan) { this.messageReader = odataMessageReader; this.feedEntryAdapter = new FeedAndEntryMaterializerAdapter(odataMessageReader, reader, materializerContext.Model, entityTrackingAdapter.MergeOption); }
/// <summary> /// Initializes a new instance of the <see cref="ODataEntriesEntityMaterializer" /> class. /// </summary> /// <param name="entries">The entries.</param> /// <param name="materializerContext">The materializer context.</param> /// <param name="entityTrackingAdapter">The entity tracking adapter.</param> /// <param name="queryComponents">The query components.</param> /// <param name="expectedType">The expected type.</param> /// <param name="materializeEntryPlan">The materialize entry plan.</param> /// <param name="format">The format.</param> public ODataEntriesEntityMaterializer( IEnumerable <ODataEntry> entries, IODataMaterializerContext materializerContext, EntityTrackingAdapter entityTrackingAdapter, QueryComponents queryComponents, Type expectedType, ProjectionPlan materializeEntryPlan, ODataFormat format) : base(materializerContext, entityTrackingAdapter, queryComponents, expectedType, materializeEntryPlan) { this.format = format; this.feedEntries = entries.GetEnumerator(); }
/// <summary> /// Initializes a new instance of the <see cref="ODataLoadNavigationPropertyMaterializer" /> class. /// </summary> /// <param name="odataMessageReader">The odata message reader.</param> /// <param name="reader">The reader.</param> /// <param name="materializerContext">The materializer context.</param> /// <param name="entityTrackingAdapter">The entity tracking adapter.</param> /// <param name="queryComponents">The query components.</param> /// <param name="expectedType">The expected type.</param> /// <param name="materializeEntryPlan">The materialize entry plan.</param> /// <param name="responseInfo">LoadProperty Response Info object.</param> public ODataLoadNavigationPropertyMaterializer( ODataMessageReader odataMessageReader, ODataReaderWrapper reader, IODataMaterializerContext materializerContext, EntityTrackingAdapter entityTrackingAdapter, QueryComponents queryComponents, Type expectedType, ProjectionPlan materializeEntryPlan, LoadPropertyResponseInfo responseInfo) : base(odataMessageReader, reader, materializerContext, entityTrackingAdapter, queryComponents, expectedType, materializeEntryPlan) { this.responseInfo = responseInfo; this.items = new List <object>(); }
/// <summary> /// Initializes a new instance of the <see cref="ODataLoadNavigationPropertyMaterializer" /> class. /// </summary> /// <param name="odataMessageReader">The odata message reader.</param> /// <param name="reader">The reader.</param> /// <param name="materializerContext">The materializer context.</param> /// <param name="entityTrackingAdapter">The entity tracking adapter.</param> /// <param name="queryComponents">The query components.</param> /// <param name="expectedType">The expected type.</param> /// <param name="materializeEntryPlan">The materialize entry plan.</param> /// <param name="responseInfo">LoadProperty Response Info object.</param> public ODataLoadNavigationPropertyMaterializer( ODataMessageReader odataMessageReader, ODataReaderWrapper reader, IODataMaterializerContext materializerContext, EntityTrackingAdapter entityTrackingAdapter, QueryComponents queryComponents, Type expectedType, ProjectionPlan materializeEntryPlan, LoadPropertyResponseInfo responseInfo) : base(odataMessageReader, reader, materializerContext, entityTrackingAdapter, queryComponents, expectedType, materializeEntryPlan) { this.responseInfo = responseInfo; this.items = new List<object>(); }
/// <summary> /// Initializes a new instance of the <see cref="ODataMaterializer" /> class. /// </summary> /// <param name="materializerContext">The materializer context.</param> /// <param name="expectedType">The expected type.</param> protected ODataMaterializer(IODataMaterializerContext materializerContext, Type expectedType) { this.ExpectedType = expectedType; this.MaterializerContext = materializerContext; this.nextLinkTable = new Dictionary<IEnumerable, DataServiceQueryContinuation>(DSClient.ReferenceEqualityComparer<IEnumerable>.Instance); this.enumValueMaterializationPolicy = new EnumValueMaterializationPolicy(this.MaterializerContext); this.lazyPrimitivePropertyConverter = new DSClient.SimpleLazy<PrimitivePropertyConverter>(() => new PrimitivePropertyConverter(this.Format)); this.primitiveValueMaterializationPolicy = new PrimitiveValueMaterializationPolicy(this.MaterializerContext, this.lazyPrimitivePropertyConverter); this.collectionValueMaterializationPolicy = new CollectionValueMaterializationPolicy(this.MaterializerContext, this.primitiveValueMaterializationPolicy); this.complexValueMaterializerPolicy = new ComplexValueMaterializationPolicy(this.MaterializerContext, this.lazyPrimitivePropertyConverter); this.instanceAnnotationMaterializationPolicy = new InstanceAnnotationMaterializationPolicy(this.MaterializerContext); this.collectionValueMaterializationPolicy.ComplexValueMaterializationPolicy = this.complexValueMaterializerPolicy; this.collectionValueMaterializationPolicy.InstanceAnnotationMaterializationPolicy = this.instanceAnnotationMaterializationPolicy; this.complexValueMaterializerPolicy.CollectionValueMaterializationPolicy = this.collectionValueMaterializationPolicy; this.complexValueMaterializerPolicy.InstanceAnnotationMaterializationPolicy = this.instanceAnnotationMaterializationPolicy; this.instanceAnnotationMaterializationPolicy.ComplexValueMaterializationPolicy = this.complexValueMaterializerPolicy; this.instanceAnnotationMaterializationPolicy.CollectionValueMaterializationPolicy = this.collectionValueMaterializationPolicy; this.instanceAnnotationMaterializationPolicy.EnumValueMaterializationPolicy = this.enumValueMaterializationPolicy; }
/// <summary> /// Initializes a new instance of the <see cref="ComplexValueMaterializationPolicy" /> class. /// </summary> /// <param name="materializerContext">The materializer context.</param> /// <param name="lazyPrimitivePropertyConverter">The lazy primitive property converter.</param> internal ComplexValueMaterializationPolicy(IODataMaterializerContext materializerContext, DSClient.SimpleLazy <PrimitivePropertyConverter> lazyPrimitivePropertyConverter) : base(materializerContext, lazyPrimitivePropertyConverter) { }
/// <summary> /// Initializes a new instance of the <see cref="CollectionValueMaterializationPolicy" /> class. /// </summary> /// <param name="context">The context.</param> /// <param name="primitivePolicy">The primitive policy.</param> internal CollectionValueMaterializationPolicy(IODataMaterializerContext context, PrimitiveValueMaterializationPolicy primitivePolicy) { this.materializerContext = context; this.primitiveValueMaterializationPolicy = primitivePolicy; }
/// <summary> /// Initializes a new instance of the <see cref="ComplexValueMaterializationPolicy" /> class. /// </summary> /// <param name="materializerContext">The materializer context.</param> /// <param name="lazyPrimitivePropertyConverter">The lazy primitive property converter.</param> internal ComplexValueMaterializationPolicy(IODataMaterializerContext materializerContext, DSClient.SimpleLazy<PrimitivePropertyConverter> lazyPrimitivePropertyConverter) : base(materializerContext, lazyPrimitivePropertyConverter) { }
/// <summary> /// Initializes a new instance of the <see cref="ODataPropertyMaterializer"/> class. /// </summary> /// <param name="reader">The reader.</param> /// <param name="materializerContext">The materializer context.</param> /// <param name="expectedType">The expected type.</param> /// <param name="singleResult">The single result.</param> public ODataPropertyMaterializer(ODataMessageReader reader, IODataMaterializerContext materializerContext, Type expectedType, bool? singleResult) : base(reader, materializerContext, expectedType, singleResult) { }
/// <summary> /// Initializes a new instance of the <see cref="EnumValueMaterializationPolicy" /> class. /// </summary> /// <param name="context">The context.</param> internal EnumValueMaterializationPolicy(IODataMaterializerContext context) { this.context = context; }
/// <summary> /// Initializes a new instance of the <see cref="PrimitiveValueMaterializationPolicy" /> class. /// </summary> /// <param name="context">The context.</param> /// <param name="lazyPrimitivePropertyConverter">The lazy primitive property converter.</param> internal PrimitiveValueMaterializationPolicy(IODataMaterializerContext context, SimpleLazy<PrimitivePropertyConverter> lazyPrimitivePropertyConverter) { this.context = context; this.lazyPrimitivePropertyConverter = lazyPrimitivePropertyConverter; }
/// <summary> /// Initializes a new instance of the <see cref="ODataPropertyMaterializer"/> class. /// </summary> /// <param name="reader">The reader.</param> /// <param name="materializerContext">The materializer context.</param> /// <param name="expectedType">The expected type.</param> /// <param name="singleResult">The single result.</param> public ODataPropertyMaterializer(ODataMessageReader reader, IODataMaterializerContext materializerContext, Type expectedType, bool?singleResult) : base(reader, materializerContext, expectedType, singleResult) { }
/// <summary> /// Initializes a new instance of the <see cref="ComplexValueMaterializationPolicy" /> class. /// </summary> /// <param name="materializerContext">The materializer context.</param> /// <param name="lazyPrimitivePropertyConverter">The lazy primitive property converter.</param> protected StructuralValueMaterializationPolicy(IODataMaterializerContext materializerContext, DSClient.SimpleLazy<PrimitivePropertyConverter> lazyPrimitivePropertyConverter) { Debug.Assert(materializerContext != null, "materializer!=null"); this.MaterializerContext = materializerContext; this.lazyPrimitivePropertyConverter = lazyPrimitivePropertyConverter; }
/// <summary> /// Initializes a new instance of the <see cref="ODataMessageReaderMaterializer"/> class. /// </summary> /// <param name="reader">The reader.</param> /// <param name="context">The materializer context.</param> /// <param name="expectedType">The expected type.</param> /// <param name="singleResult">The single result.</param> public ODataMessageReaderMaterializer(ODataMessageReader reader, IODataMaterializerContext context, Type expectedType, bool?singleResult) : base(context, expectedType) { this.messageReader = reader; this.SingleResult = singleResult; }
/// <summary> /// Initializes a new instance of the <see cref="InstanceAnnotationMaterializationPolicy" /> class. /// </summary> /// <param name="materializerContext">The materializer context.</param> internal InstanceAnnotationMaterializationPolicy(IODataMaterializerContext materializerContext) { Debug.Assert(materializerContext != null, "materializer!=null"); this.MaterializerContext = materializerContext; }
internal CollectionValueMaterializationPolicy CreateCollectionValueMaterializationPolicy(IODataMaterializerContext materializerContext) { var lazyPrimitivePropertyConverter = new DSClient.SimpleLazy <PrimitivePropertyConverter>(() => new PrimitivePropertyConverter()); var primitiveValueMaterializerPolicy = new PrimitiveValueMaterializationPolicy(materializerContext, lazyPrimitivePropertyConverter); var collectionPolicy = new CollectionValueMaterializationPolicy(materializerContext, primitiveValueMaterializerPolicy); var instanceAnnotationPolicy = new InstanceAnnotationMaterializationPolicy(materializerContext); collectionPolicy.InstanceAnnotationMaterializationPolicy = instanceAnnotationPolicy; return(collectionPolicy); }
/// <summary> /// Initializes a new instance of the <see cref="StructuralValueMaterializationPolicy" /> class. /// </summary> /// <param name="materializerContext">The materializer context.</param> /// <param name="lazyPrimitivePropertyConverter">The lazy primitive property converter.</param> protected StructuralValueMaterializationPolicy(IODataMaterializerContext materializerContext, DSClient.SimpleLazy <PrimitivePropertyConverter> lazyPrimitivePropertyConverter) { Debug.Assert(materializerContext != null, "materializer!=null"); this.MaterializerContext = materializerContext; this.lazyPrimitivePropertyConverter = lazyPrimitivePropertyConverter; }
/// <summary> /// Initializes a new instance of the <see cref="PrimitiveValueMaterializationPolicy" /> class. /// </summary> /// <param name="context">The context.</param> /// <param name="lazyPrimitivePropertyConverter">The lazy primitive property converter.</param> internal PrimitiveValueMaterializationPolicy(IODataMaterializerContext context, SimpleLazy <PrimitivePropertyConverter> lazyPrimitivePropertyConverter) { this.context = context; this.lazyPrimitivePropertyConverter = lazyPrimitivePropertyConverter; }
/// <summary> /// Initializes a new instance of the <see cref="ODataMessageReaderMaterializer"/> class. /// </summary> /// <param name="reader">The reader.</param> /// <param name="context">The materializer context.</param> /// <param name="expectedType">The expected type.</param> /// <param name="singleResult">The single result.</param> public ODataMessageReaderMaterializer(ODataMessageReader reader, IODataMaterializerContext context, Type expectedType, bool? singleResult) : base(context, expectedType) { this.messageReader = reader; this.SingleResult = singleResult; }