diff --git a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml index f01fef9..6d46393 100644 --- a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml +++ b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml @@ -5898,14 +5898,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Supports annotation values within system query options @@ -5924,14 +5916,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Service supports the asynchronous request preference @@ -5950,14 +5934,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Service supports the continue on error preference. Supports $batch requests. Services that apply the BatchContinueOnErrorSupported term should also specify the ContinueOnErrorSupported property from the BatchSupport term. @@ -6044,14 +6020,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Supports $batch requests. Services that apply the BatchSupported term should also apply the more comprehensive BatchSupport term. @@ -6340,14 +6308,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Supports $compute @@ -6444,14 +6404,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Supports cross joins for the entity sets in this container @@ -6980,14 +6932,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Supports key values according to OData URL conventions @@ -7165,14 +7109,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Supports [key-as-segment convention](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_KeyasSegmentConvention) for addressing entities within a collection @@ -7191,14 +7127,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Stream property supports update of its media edit URL and/or media read URL @@ -7660,14 +7588,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Supports [passing query options in the request body](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_PassingQueryOptionsintheRequestBody) @@ -8065,14 +7985,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Supports $skip @@ -8174,14 +8086,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Supports $top @@ -8378,14 +8282,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Instances of this type may contain properties in addition to those declared in $metadata @@ -8465,14 +8361,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - The service will automatically expand this stream or navigation property even if not requested with $expand @@ -8491,14 +8379,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - The service will automatically expand this navigation property as entity references even if not requested with $expand=.../$ref @@ -8517,14 +8397,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - A value for this property is generated on both insert and update @@ -8543,14 +8415,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - A value for this property can be provided by the client on insert and update. If no value is provided on insert, a non-static default value is generated @@ -8569,14 +8433,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - A unique identifier for nested entities within a request. @@ -8595,14 +8451,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Entity-ids follow OData URL conventions @@ -8709,14 +8557,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Functions, actions and types in this namespace can be referenced in URLs with or without namespace- or alias- qualification. @@ -8736,14 +8576,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Entity-ids are URLs that locate the identified entity @@ -8762,14 +8594,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - A brief description of a model element @@ -8814,14 +8638,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - A value for this non-key property can be provided by the client on insert and remains unchanged on update @@ -8840,14 +8656,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Properties and terms annotated with this term are language-dependent @@ -8866,14 +8674,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Properties and terms annotated with this term MUST contain a valid MIME type @@ -8892,14 +8692,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Properties and terms annotated with this term MUST contain a valid URL @@ -8978,14 +8770,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - A lengthy description of a model element @@ -9022,14 +8806,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - The media type of a binary resource @@ -9136,14 +8912,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - A space-separated list of supported versions of the OData Protocol. Note that 4.0 is implied by 4.01 and does not need to be separately listed. @@ -9163,14 +8931,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Action or function is available @@ -9236,14 +8996,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Collection has a stable order. Ordered collections of primitive or complex types can be indexed by ordinal. @@ -9310,14 +9062,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Items can be inserted at a given ordinal index. @@ -9406,14 +9150,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Terms annotated with this term can only be applied to elements that have a type that is identical to or derived from the given type name @@ -9472,14 +9208,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Resource path for entity container child, can be relative to xml:base and the request URL @@ -9585,14 +9313,6 @@ - - - Dynamic properties. - - The name to set - The value to set - - Service-defined value representing the version of the schema. Services MAY use semantic versioning, but clients MUST NOT assume this is the case. @@ -9692,6 +9412,11 @@ Base vocabulary configuration. + + + Gets or sets the vocabulary annotation location. + + The name of the to build. diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs index c2bd02a..80df330 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class AnnotationValuesInQuerySupportedConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _annotationValuesInQuerySupported; /// public override string TermName => "Org.OData.Capabilities.V1.AnnotationValuesInQuerySupported"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public AnnotationValuesInQuerySupportedConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Supports annotation values within system query options /// @@ -48,21 +35,7 @@ public AnnotationValuesInQuerySupportedConfiguration IsAnnotationValuesInQuerySu /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_annotationValuesInQuerySupported.HasValue) - { - properties.Add(new EdmPropertyConstructor("AnnotationValuesInQuerySupported", new EdmBooleanConstant(_annotationValuesInQuerySupported.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _annotationValuesInQuerySupported.HasValue ? new EdmBooleanConstant(_annotationValuesInQuerySupported.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs index 6a818b9..e8f7403 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class AsynchronousRequestsSupportedConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _asynchronousRequestsSupported; /// public override string TermName => "Org.OData.Capabilities.V1.AsynchronousRequestsSupported"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public AsynchronousRequestsSupportedConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Service supports the asynchronous request preference /// @@ -48,21 +35,7 @@ public AsynchronousRequestsSupportedConfiguration IsAsynchronousRequestsSupporte /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_asynchronousRequestsSupported.HasValue) - { - properties.Add(new EdmPropertyConstructor("AsynchronousRequestsSupported", new EdmBooleanConstant(_asynchronousRequestsSupported.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _asynchronousRequestsSupported.HasValue ? new EdmBooleanConstant(_asynchronousRequestsSupported.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs index 3071b86..f398b1c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class BatchContinueOnErrorSupportedConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _batchContinueOnErrorSupported; /// public override string TermName => "Org.OData.Capabilities.V1.BatchContinueOnErrorSupported"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public BatchContinueOnErrorSupportedConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Service supports the continue on error preference. Supports $batch requests. Services that apply the BatchContinueOnErrorSupported term should also specify the ContinueOnErrorSupported property from the BatchSupport term. /// @@ -48,21 +35,7 @@ public BatchContinueOnErrorSupportedConfiguration IsBatchContinueOnErrorSupporte /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_batchContinueOnErrorSupported.HasValue) - { - properties.Add(new EdmPropertyConstructor("BatchContinueOnErrorSupported", new EdmBooleanConstant(_batchContinueOnErrorSupported.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _batchContinueOnErrorSupported.HasValue ? new EdmBooleanConstant(_batchContinueOnErrorSupported.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchSupportedConfiguration.cs index 2491a09..d45985c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchSupportedConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class BatchSupportedConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _batchSupported; /// public override string TermName => "Org.OData.Capabilities.V1.BatchSupported"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public BatchSupportedConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Supports $batch requests. Services that apply the BatchSupported term should also apply the more comprehensive BatchSupport term. /// @@ -48,21 +35,7 @@ public BatchSupportedConfiguration IsBatchSupported(bool batchSupported) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_batchSupported.HasValue) - { - properties.Add(new EdmPropertyConstructor("BatchSupported", new EdmBooleanConstant(_batchSupported.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _batchSupported.HasValue ? new EdmBooleanConstant(_batchSupported.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ComputeSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ComputeSupportedConfiguration.cs index d456fe2..d95fefb 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ComputeSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ComputeSupportedConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class ComputeSupportedConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _computeSupported; /// public override string TermName => "Org.OData.Capabilities.V1.ComputeSupported"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public ComputeSupportedConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Supports $compute /// @@ -48,21 +35,7 @@ public ComputeSupportedConfiguration IsComputeSupported(bool computeSupported) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_computeSupported.HasValue) - { - properties.Add(new EdmPropertyConstructor("ComputeSupported", new EdmBooleanConstant(_computeSupported.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _computeSupported.HasValue ? new EdmBooleanConstant(_computeSupported.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CrossJoinSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CrossJoinSupportedConfiguration.cs index 05fedfa..5e06cbf 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CrossJoinSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CrossJoinSupportedConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class CrossJoinSupportedConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _crossJoinSupported; /// public override string TermName => "Org.OData.Capabilities.V1.CrossJoinSupported"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public CrossJoinSupportedConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Supports cross joins for the entity sets in this container /// @@ -48,21 +35,7 @@ public CrossJoinSupportedConfiguration IsCrossJoinSupported(bool crossJoinSuppor /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_crossJoinSupported.HasValue) - { - properties.Add(new EdmPropertyConstructor("CrossJoinSupported", new EdmBooleanConstant(_crossJoinSupported.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _crossJoinSupported.HasValue ? new EdmBooleanConstant(_crossJoinSupported.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IndexableByKeyConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IndexableByKeyConfiguration.cs index 577d013..5c87410 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IndexableByKeyConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IndexableByKeyConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class IndexableByKeyConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _indexableByKey; /// public override string TermName => "Org.OData.Capabilities.V1.IndexableByKey"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public IndexableByKeyConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Supports key values according to OData URL conventions /// @@ -48,21 +35,7 @@ public IndexableByKeyConfiguration IsIndexableByKey(bool indexableByKey) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_indexableByKey.HasValue) - { - properties.Add(new EdmPropertyConstructor("IndexableByKey", new EdmBooleanConstant(_indexableByKey.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _indexableByKey.HasValue ? new EdmBooleanConstant(_indexableByKey.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs index 54014f0..71da6a0 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class KeyAsSegmentSupportedConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _keyAsSegmentSupported; /// public override string TermName => "Org.OData.Capabilities.V1.KeyAsSegmentSupported"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public KeyAsSegmentSupportedConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Supports [key-as-segment convention](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_KeyasSegmentConvention) for addressing entities within a collection /// @@ -48,21 +35,7 @@ public KeyAsSegmentSupportedConfiguration IsKeyAsSegmentSupported(bool keyAsSegm /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_keyAsSegmentSupported.HasValue) - { - properties.Add(new EdmPropertyConstructor("KeyAsSegmentSupported", new EdmBooleanConstant(_keyAsSegmentSupported.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _keyAsSegmentSupported.HasValue ? new EdmBooleanConstant(_keyAsSegmentSupported.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs index 0e645be..5b780a5 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class MediaLocationUpdateSupportedConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _mediaLocationUpdateSupported; /// public override string TermName => "Org.OData.Capabilities.V1.MediaLocationUpdateSupported"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public MediaLocationUpdateSupportedConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Stream property supports update of its media edit URL and/or media read URL /// @@ -48,21 +35,7 @@ public MediaLocationUpdateSupportedConfiguration IsMediaLocationUpdateSupported( /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_mediaLocationUpdateSupported.HasValue) - { - properties.Add(new EdmPropertyConstructor("MediaLocationUpdateSupported", new EdmBooleanConstant(_mediaLocationUpdateSupported.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _mediaLocationUpdateSupported.HasValue ? new EdmBooleanConstant(_mediaLocationUpdateSupported.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/QuerySegmentSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/QuerySegmentSupportedConfiguration.cs index f635ebd..7d2586e 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/QuerySegmentSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/QuerySegmentSupportedConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class QuerySegmentSupportedConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _querySegmentSupported; /// public override string TermName => "Org.OData.Capabilities.V1.QuerySegmentSupported"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public QuerySegmentSupportedConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Supports [passing query options in the request body](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_PassingQueryOptionsintheRequestBody) /// @@ -48,21 +35,7 @@ public QuerySegmentSupportedConfiguration IsQuerySegmentSupported(bool querySegm /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_querySegmentSupported.HasValue) - { - properties.Add(new EdmPropertyConstructor("QuerySegmentSupported", new EdmBooleanConstant(_querySegmentSupported.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _querySegmentSupported.HasValue ? new EdmBooleanConstant(_querySegmentSupported.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SkipSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SkipSupportedConfiguration.cs index 9b1fb5f..e7c3962 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SkipSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SkipSupportedConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class SkipSupportedConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _skipSupported; /// public override string TermName => "Org.OData.Capabilities.V1.SkipSupported"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public SkipSupportedConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Supports $skip /// @@ -48,21 +35,7 @@ public SkipSupportedConfiguration IsSkipSupported(bool skipSupported) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_skipSupported.HasValue) - { - properties.Add(new EdmPropertyConstructor("SkipSupported", new EdmBooleanConstant(_skipSupported.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _skipSupported.HasValue ? new EdmBooleanConstant(_skipSupported.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/TopSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/TopSupportedConfiguration.cs index bbbd499..41c30f5 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/TopSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/TopSupportedConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class TopSupportedConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _topSupported; /// public override string TermName => "Org.OData.Capabilities.V1.TopSupported"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public TopSupportedConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Supports $top /// @@ -48,21 +35,7 @@ public TopSupportedConfiguration IsTopSupported(bool topSupported) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_topSupported.HasValue) - { - properties.Add(new EdmPropertyConstructor("TopSupported", new EdmBooleanConstant(_topSupported.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _topSupported.HasValue ? new EdmBooleanConstant(_topSupported.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/AdditionalPropertiesConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/AdditionalPropertiesConfiguration.cs index b1a1e19..6150021 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/AdditionalPropertiesConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/AdditionalPropertiesConfiguration.cs @@ -17,24 +17,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class AdditionalPropertiesConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _additionalProperties; /// public override string TermName => "Org.OData.Core.V1.AdditionalProperties"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public AdditionalPropertiesConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Instances of this type may contain properties in addition to those declared in $metadata /// If specified as false clients can assume that instances will not contain dynamic properties, irrespective of the value of the OpenType attribute. @@ -50,21 +37,7 @@ public AdditionalPropertiesConfiguration IsAdditionalProperties(bool additionalP /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_additionalProperties.HasValue) - { - properties.Add(new EdmPropertyConstructor("AdditionalProperties", new EdmBooleanConstant(_additionalProperties.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _additionalProperties.HasValue ? new EdmBooleanConstant(_additionalProperties.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/AutoExpandConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/AutoExpandConfiguration.cs index 2cda2a0..1c67a14 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/AutoExpandConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/AutoExpandConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class AutoExpandConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _autoExpand; /// public override string TermName => "Org.OData.Core.V1.AutoExpand"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public AutoExpandConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// The service will automatically expand this stream or navigation property even if not requested with $expand /// @@ -48,21 +35,7 @@ public AutoExpandConfiguration IsAutoExpand(bool autoExpand) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_autoExpand.HasValue) - { - properties.Add(new EdmPropertyConstructor("AutoExpand", new EdmBooleanConstant(_autoExpand.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _autoExpand.HasValue ? new EdmBooleanConstant(_autoExpand.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/AutoExpandReferencesConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/AutoExpandReferencesConfiguration.cs index 4a76d9f..07dcf36 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/AutoExpandReferencesConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/AutoExpandReferencesConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class AutoExpandReferencesConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _autoExpandReferences; /// public override string TermName => "Org.OData.Core.V1.AutoExpandReferences"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public AutoExpandReferencesConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// The service will automatically expand this navigation property as entity references even if not requested with $expand=.../$ref /// @@ -48,21 +35,7 @@ public AutoExpandReferencesConfiguration IsAutoExpandReferences(bool autoExpandR /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_autoExpandReferences.HasValue) - { - properties.Add(new EdmPropertyConstructor("AutoExpandReferences", new EdmBooleanConstant(_autoExpandReferences.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _autoExpandReferences.HasValue ? new EdmBooleanConstant(_autoExpandReferences.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ComputedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ComputedConfiguration.cs index ec478f4..6ad4d8d 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ComputedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ComputedConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class ComputedConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _computed; /// public override string TermName => "Org.OData.Core.V1.Computed"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public ComputedConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// A value for this property is generated on both insert and update /// @@ -48,21 +35,7 @@ public ComputedConfiguration IsComputed(bool computed) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_computed.HasValue) - { - properties.Add(new EdmPropertyConstructor("Computed", new EdmBooleanConstant(_computed.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _computed.HasValue ? new EdmBooleanConstant(_computed.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ComputedDefaultValueConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ComputedDefaultValueConfiguration.cs index b5e3d98..1921839 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ComputedDefaultValueConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ComputedDefaultValueConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class ComputedDefaultValueConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _computedDefaultValue; /// public override string TermName => "Org.OData.Core.V1.ComputedDefaultValue"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public ComputedDefaultValueConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// A value for this property can be provided by the client on insert and update. If no value is provided on insert, a non-static default value is generated /// @@ -48,21 +35,7 @@ public ComputedDefaultValueConfiguration IsComputedDefaultValue(bool computedDef /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_computedDefaultValue.HasValue) - { - properties.Add(new EdmPropertyConstructor("ComputedDefaultValue", new EdmBooleanConstant(_computedDefaultValue.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _computedDefaultValue.HasValue ? new EdmBooleanConstant(_computedDefaultValue.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ContentIDConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ContentIDConfiguration.cs index 5dea9fa..0c11f46 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ContentIDConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ContentIDConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class ContentIDConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private string _contentID; /// public override string TermName => "Org.OData.Core.V1.ContentID"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public ContentIDConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// A unique identifier for nested entities within a request. /// @@ -48,21 +35,7 @@ public ContentIDConfiguration HasContentID(string contentID) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (!string.IsNullOrEmpty(_contentID)) - { - properties.Add(new EdmPropertyConstructor("ContentID", new EdmStringConstant(_contentID))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return new EdmStringConstant(_contentID); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ConventionalIDsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ConventionalIDsConfiguration.cs index ab49607..106e0a6 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ConventionalIDsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ConventionalIDsConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class ConventionalIDsConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _conventionalIDs; /// public override string TermName => "Org.OData.Core.V1.ConventionalIDs"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public ConventionalIDsConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Entity-ids follow OData URL conventions /// @@ -48,21 +35,7 @@ public ConventionalIDsConfiguration IsConventionalIDs(bool conventionalIDs) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_conventionalIDs.HasValue) - { - properties.Add(new EdmPropertyConstructor("ConventionalIDs", new EdmBooleanConstant(_conventionalIDs.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _conventionalIDs.HasValue ? new EdmBooleanConstant(_conventionalIDs.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/DefaultNamespaceConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/DefaultNamespaceConfiguration.cs index 8a5b507..376b1fc 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/DefaultNamespaceConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/DefaultNamespaceConfiguration.cs @@ -17,24 +17,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class DefaultNamespaceConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _defaultNamespace; /// public override string TermName => "Org.OData.Core.V1.DefaultNamespace"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public DefaultNamespaceConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Functions, actions and types in this namespace can be referenced in URLs with or without namespace- or alias- qualification. /// Data Modelers should ensure uniqueness of schema children across all default namespaces, and should avoid naming bound functions, actions, or derived types with the same name as a structural or navigational property of the type. @@ -50,21 +37,7 @@ public DefaultNamespaceConfiguration IsDefaultNamespace(bool defaultNamespace) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_defaultNamespace.HasValue) - { - properties.Add(new EdmPropertyConstructor("DefaultNamespace", new EdmBooleanConstant(_defaultNamespace.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _defaultNamespace.HasValue ? new EdmBooleanConstant(_defaultNamespace.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/DereferenceableIDsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/DereferenceableIDsConfiguration.cs index 743d1e0..ffe73e6 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/DereferenceableIDsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/DereferenceableIDsConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class DereferenceableIDsConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _dereferenceableIDs; /// public override string TermName => "Org.OData.Core.V1.DereferenceableIDs"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public DereferenceableIDsConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Entity-ids are URLs that locate the identified entity /// @@ -48,21 +35,7 @@ public DereferenceableIDsConfiguration IsDereferenceableIDs(bool dereferenceable /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_dereferenceableIDs.HasValue) - { - properties.Add(new EdmPropertyConstructor("DereferenceableIDs", new EdmBooleanConstant(_dereferenceableIDs.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _dereferenceableIDs.HasValue ? new EdmBooleanConstant(_dereferenceableIDs.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/DescriptionConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/DescriptionConfiguration.cs index bef15e6..eb24f24 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/DescriptionConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/DescriptionConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class DescriptionConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private string _description; /// public override string TermName => "Org.OData.Core.V1.Description"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public DescriptionConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// A brief description of a model element /// @@ -48,21 +35,7 @@ public DescriptionConfiguration HasDescription(string description) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (!string.IsNullOrEmpty(_description)) - { - properties.Add(new EdmPropertyConstructor("Description", new EdmStringConstant(_description))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return new EdmStringConstant(_description); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ImmutableConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ImmutableConfiguration.cs index f331032..6a452dc 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ImmutableConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ImmutableConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class ImmutableConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _immutable; /// public override string TermName => "Org.OData.Core.V1.Immutable"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public ImmutableConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// A value for this non-key property can be provided by the client on insert and remains unchanged on update /// @@ -48,21 +35,7 @@ public ImmutableConfiguration IsImmutable(bool immutable) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_immutable.HasValue) - { - properties.Add(new EdmPropertyConstructor("Immutable", new EdmBooleanConstant(_immutable.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _immutable.HasValue ? new EdmBooleanConstant(_immutable.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/IsLanguageDependentConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/IsLanguageDependentConfiguration.cs index 9aa8dfa..cd68883 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/IsLanguageDependentConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/IsLanguageDependentConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class IsLanguageDependentConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _isLanguageDependent; /// public override string TermName => "Org.OData.Core.V1.IsLanguageDependent"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public IsLanguageDependentConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Properties and terms annotated with this term are language-dependent /// @@ -48,21 +35,7 @@ public IsLanguageDependentConfiguration IsIsLanguageDependent(bool isLanguageDep /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_isLanguageDependent.HasValue) - { - properties.Add(new EdmPropertyConstructor("IsLanguageDependent", new EdmBooleanConstant(_isLanguageDependent.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _isLanguageDependent.HasValue ? new EdmBooleanConstant(_isLanguageDependent.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/IsMediaTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/IsMediaTypeConfiguration.cs index 82edc64..67c6881 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/IsMediaTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/IsMediaTypeConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class IsMediaTypeConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _isMediaType; /// public override string TermName => "Org.OData.Core.V1.IsMediaType"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public IsMediaTypeConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Properties and terms annotated with this term MUST contain a valid MIME type /// @@ -48,21 +35,7 @@ public IsMediaTypeConfiguration IsIsMediaType(bool isMediaType) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_isMediaType.HasValue) - { - properties.Add(new EdmPropertyConstructor("IsMediaType", new EdmBooleanConstant(_isMediaType.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _isMediaType.HasValue ? new EdmBooleanConstant(_isMediaType.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/IsURLConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/IsURLConfiguration.cs index c2902c5..e4f6f77 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/IsURLConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/IsURLConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class IsURLConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _isURL; /// public override string TermName => "Org.OData.Core.V1.IsURL"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public IsURLConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Properties and terms annotated with this term MUST contain a valid URL /// @@ -48,21 +35,7 @@ public IsURLConfiguration IsIsURL(bool isURL) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_isURL.HasValue) - { - properties.Add(new EdmPropertyConstructor("IsURL", new EdmBooleanConstant(_isURL.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _isURL.HasValue ? new EdmBooleanConstant(_isURL.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/LongDescriptionConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/LongDescriptionConfiguration.cs index 6fabbe9..8509526 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/LongDescriptionConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/LongDescriptionConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class LongDescriptionConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private string _longDescription; /// public override string TermName => "Org.OData.Core.V1.LongDescription"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public LongDescriptionConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// A lengthy description of a model element /// @@ -48,21 +35,7 @@ public LongDescriptionConfiguration HasLongDescription(string longDescription) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (!string.IsNullOrEmpty(_longDescription)) - { - properties.Add(new EdmPropertyConstructor("LongDescription", new EdmStringConstant(_longDescription))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return new EdmStringConstant(_longDescription); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/MediaTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/MediaTypeConfiguration.cs index c1ade17..567e49f 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/MediaTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/MediaTypeConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class MediaTypeConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private string _mediaType; /// public override string TermName => "Org.OData.Core.V1.MediaType"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public MediaTypeConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// The media type of a binary resource /// @@ -48,21 +35,7 @@ public MediaTypeConfiguration HasMediaType(string mediaType) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (!string.IsNullOrEmpty(_mediaType)) - { - properties.Add(new EdmPropertyConstructor("MediaType", new EdmStringConstant(_mediaType))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return new EdmStringConstant(_mediaType); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ODataVersionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ODataVersionsConfiguration.cs index 6bb8642..135b9a6 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ODataVersionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ODataVersionsConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class ODataVersionsConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private string _oDataVersions; /// public override string TermName => "Org.OData.Core.V1.ODataVersions"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public ODataVersionsConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// A space-separated list of supported versions of the OData Protocol. Note that 4.0 is implied by 4.01 and does not need to be separately listed. /// @@ -48,21 +35,7 @@ public ODataVersionsConfiguration HasODataVersions(string oDataVersions) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (!string.IsNullOrEmpty(_oDataVersions)) - { - properties.Add(new EdmPropertyConstructor("ODataVersions", new EdmStringConstant(_oDataVersions))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return new EdmStringConstant(_oDataVersions); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/OperationAvailableConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/OperationAvailableConfiguration.cs index 274a652..1d0917f 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/OperationAvailableConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/OperationAvailableConfiguration.cs @@ -17,24 +17,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class OperationAvailableConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _operationAvailable; /// public override string TermName => "Org.OData.Core.V1.OperationAvailable"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public OperationAvailableConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Action or function is available /// The annotation value will usually be an expression, e.g. using properties of the binding parameter type for instance-dependent availability, or using properties of a singleton for global availability. The static value `null` means that availability cannot be determined upfront and is instead expressed as an operation advertisement. @@ -50,21 +37,7 @@ public OperationAvailableConfiguration IsOperationAvailable(bool operationAvaila /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_operationAvailable.HasValue) - { - properties.Add(new EdmPropertyConstructor("OperationAvailable", new EdmBooleanConstant(_operationAvailable.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _operationAvailable.HasValue ? new EdmBooleanConstant(_operationAvailable.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/OrderedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/OrderedConfiguration.cs index 5cb9d0d..4650dfc 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/OrderedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/OrderedConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class OrderedConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _ordered; /// public override string TermName => "Org.OData.Core.V1.Ordered"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public OrderedConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Collection has a stable order. Ordered collections of primitive or complex types can be indexed by ordinal. /// @@ -48,21 +35,7 @@ public OrderedConfiguration IsOrdered(bool ordered) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_ordered.HasValue) - { - properties.Add(new EdmPropertyConstructor("Ordered", new EdmBooleanConstant(_ordered.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _ordered.HasValue ? new EdmBooleanConstant(_ordered.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/PositionalInsertConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/PositionalInsertConfiguration.cs index b8da844..75e9395 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/PositionalInsertConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/PositionalInsertConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class PositionalInsertConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private bool? _positionalInsert; /// public override string TermName => "Org.OData.Core.V1.PositionalInsert"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public PositionalInsertConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Items can be inserted at a given ordinal index. /// @@ -48,21 +35,7 @@ public PositionalInsertConfiguration IsPositionalInsert(bool positionalInsert) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (_positionalInsert.HasValue) - { - properties.Add(new EdmPropertyConstructor("PositionalInsert", new EdmBooleanConstant(_positionalInsert.Value))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return _positionalInsert.HasValue ? new EdmBooleanConstant(_positionalInsert.Value) : null; } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/RequiresTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/RequiresTypeConfiguration.cs index 8e51e83..0730f73 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/RequiresTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/RequiresTypeConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class RequiresTypeConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private string _requiresType; /// public override string TermName => "Org.OData.Core.V1.RequiresType"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public RequiresTypeConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Terms annotated with this term can only be applied to elements that have a type that is identical to or derived from the given type name /// @@ -48,21 +35,7 @@ public RequiresTypeConfiguration HasRequiresType(string requiresType) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (!string.IsNullOrEmpty(_requiresType)) - { - properties.Add(new EdmPropertyConstructor("RequiresType", new EdmStringConstant(_requiresType))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return new EdmStringConstant(_requiresType); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ResourcePathConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ResourcePathConfiguration.cs index 124b157..7967428 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ResourcePathConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/ResourcePathConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class ResourcePathConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private string _resourcePath; /// public override string TermName => "Org.OData.Core.V1.ResourcePath"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public ResourcePathConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Resource path for entity container child, can be relative to xml:base and the request URL /// @@ -48,21 +35,7 @@ public ResourcePathConfiguration HasResourcePath(string resourcePath) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (!string.IsNullOrEmpty(_resourcePath)) - { - properties.Add(new EdmPropertyConstructor("ResourcePath", new EdmStringConstant(_resourcePath))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return new EdmStringConstant(_resourcePath); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/SchemaVersionConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/SchemaVersionConfiguration.cs index f4ca28c..c654a95 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/SchemaVersionConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/SchemaVersionConfiguration.cs @@ -16,24 +16,11 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class SchemaVersionConfiguration : VocabularyTermConfiguration { - private readonly Dictionary _dynamicProperties = new Dictionary(); private string _schemaVersion; /// public override string TermName => "Org.OData.Core.V1.SchemaVersion"; - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public SchemaVersionConfiguration HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } - /// /// Service-defined value representing the version of the schema. Services MAY use semantic versioning, but clients MUST NOT assume this is the case. /// @@ -48,21 +35,7 @@ public SchemaVersionConfiguration HasSchemaVersion(string schemaVersion) /// public override IEdmExpression ToEdmExpression() { - var properties = new List(); - - if (!string.IsNullOrEmpty(_schemaVersion)) - { - properties.Add(new EdmPropertyConstructor("SchemaVersion", new EdmStringConstant(_schemaVersion))); - } - - properties.AddRange(_dynamicProperties.ToEdmProperties()); - - if (!properties.Any()) - { - return null; - } - - return new EdmRecordExpression(properties); + return new EdmStringConstant(_schemaVersion); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfiguration.cs index 5320150..e1c33b2 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfiguration.cs @@ -3,6 +3,7 @@ using System; using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Csdl; using Microsoft.OData.Edm.Vocabularies; namespace Microsoft.OData.ModelBuilder @@ -12,6 +13,11 @@ namespace Microsoft.OData.ModelBuilder /// public abstract partial class VocabularyTermConfiguration : IRecord { + /// + /// Gets or sets the vocabulary annotation location. + /// + public EdmVocabularyAnnotationSerializationLocation Location { get; set; } = EdmVocabularyAnnotationSerializationLocation.OutOfLine; + /// /// The name of the to build. /// @@ -43,6 +49,7 @@ public virtual void SetVocabularyAnnotations(EdmModel model, IEdmVocabularyAnnot } var annotation = new EdmVocabularyAnnotation(target, term, expression); + annotation.SetSerializationLocation(model, Location); model.SetVocabularyAnnotation(annotation); } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt index 26f1c54..8cc8d8c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt @@ -390,6 +390,59 @@ namespace <#= @namespace #> return new EdmCollectionExpression(records); <#+ } + else if (term.Type.Definition.TypeKind == EdmTypeKind.TypeDefinition || term.Type.Definition.TypeKind == EdmTypeKind.Primitive) + { + var fullTypeName = actualType.AsActualType().FullTypeName(); + var fullName = term.FullName(); + var name = fullName.Substring(fullName.LastIndexOf('.') + 1); + var camelName = $"{CamelCase(name)}"; + if (fullTypeName == "Edm.String") + { +#> + return new EdmStringConstant(_<#= camelName #>); +<#+ + } + else if (fullTypeName == "Edm.PrimitiveType") + { +#> + return _<#= camelName #> != null ? new EdmStringConstant(_<#= camelName #>.ToString()) : null; + +<#+ + } + else if (fullTypeName == "Edm.Int32") + { +#> + return _<#= camelName #>.HasValue ? new EdmIntegerConstant(_<#= camelName #>.Value) : null; +<#+ + } + + else if (fullTypeName == "Edm.Int16") + { +#> + return _<#= camelName #>.HasValue ? new EdmIntegerConstant(_<#= camelName #>.Value) : null; +<#+ + } + else if (fullTypeName == "Edm.Boolean") + { +#> + return _<#= camelName #>.HasValue ? new EdmBooleanConstant(_<#= camelName #>.Value) : null; +<#+ + } + else + { + var edmTypeConstant = fullTypeName.Replace(".", string.Empty) + "Constant"; +#> + if (_<#= camelName #>.HasValue) + { + return new <#= edmTypeConstant#>(_<#= camelName #>.Value); + } + else + { + return null; + } +<#+ + } + } else { #> @@ -565,13 +618,6 @@ using Microsoft.OData.Edm.Vocabularies; { #> private readonly Dictionary _dynamicProperties = new Dictionary(); -<#+ - } - - if(actualType.TypeKind == EdmTypeKind.Primitive && returnType == expectedReturnType) - { -#> - private readonly Dictionary _dynamicProperties = new Dictionary(); <#+ } #> @@ -675,24 +721,6 @@ using Microsoft.OData.Edm.Vocabularies; } } - if(actualType.TypeKind == EdmTypeKind.Primitive && returnType == expectedReturnType) - { -#> - - /// - /// Dynamic properties. - /// - /// The name to set - /// The value to set - /// - public <#= returnType #> HasDynamicProperty(string name, object value) - { - _dynamicProperties[name] = value; - return this; - } -<#+ - } - var methodPrefix = "Has"; if (clrType == "bool") { diff --git a/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl b/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl index 9291b8d..6420a02 100644 --- a/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl +++ b/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl @@ -322,6 +322,7 @@ public abstract class Microsoft.OData.ModelBuilder.StructuralTypeConfiguration`1 public abstract class Microsoft.OData.ModelBuilder.VocabularyTermConfiguration : IRecord { protected VocabularyTermConfiguration () + Microsoft.OData.Edm.Csdl.EdmVocabularyAnnotationSerializationLocation Location { public get; public set; } string TermName { public abstract get; } public virtual void SetVocabularyAnnotations (Microsoft.OData.Edm.EdmModel model, Microsoft.OData.Edm.Vocabularies.IEdmVocabularyAnnotatable target) @@ -1651,7 +1652,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.AnnotationValuesInQuer string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.AnnotationValuesInQuerySupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.AnnotationValuesInQuerySupportedConfiguration IsAnnotationValuesInQuerySupported (bool annotationValuesInQuerySupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1661,7 +1661,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.AsynchronousRequestsSu string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.AsynchronousRequestsSupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.AsynchronousRequestsSupportedConfiguration IsAsynchronousRequestsSupported (bool asynchronousRequestsSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1671,7 +1670,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchContinueOnErrorSu string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchContinueOnErrorSupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchContinueOnErrorSupportedConfiguration IsBatchContinueOnErrorSupported (bool batchContinueOnErrorSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1697,7 +1695,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportedConfigur string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportedConfiguration IsBatchSupported (bool batchSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1772,7 +1769,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.ComputeSupportedConfig string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.ComputeSupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.ComputeSupportedConfiguration IsComputeSupported (bool computeSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1803,7 +1799,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CrossJoinSupportedConf string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.CrossJoinSupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.CrossJoinSupportedConfiguration IsCrossJoinSupported (bool crossJoinSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1938,7 +1933,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyConfigur string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyConfiguration IsIndexableByKey (bool indexableByKey) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1982,7 +1976,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.KeyAsSegmentSupportedC string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.KeyAsSegmentSupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.KeyAsSegmentSupportedConfiguration IsKeyAsSegmentSupported (bool keyAsSegmentSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1992,7 +1985,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.MediaLocationUpdateSup string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.MediaLocationUpdateSupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.MediaLocationUpdateSupportedConfiguration IsMediaLocationUpdateSupported (bool mediaLocationUpdateSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2089,7 +2081,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.QuerySegmentSupportedC string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.QuerySegmentSupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.QuerySegmentSupportedConfiguration IsQuerySegmentSupported (bool querySegmentSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2174,7 +2165,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedConfigura string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedConfiguration IsSkipSupported (bool skipSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2215,7 +2205,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedConfigurat string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedConfiguration IsTopSupported (bool topSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2307,7 +2296,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.AdditionalPropertiesConfigurat string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.AdditionalPropertiesConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.AdditionalPropertiesConfiguration IsAdditionalProperties (bool additionalProperties) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2336,7 +2324,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.AutoExpandConfiguration : Micr string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.AutoExpandConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.AutoExpandConfiguration IsAutoExpand (bool autoExpand) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2346,7 +2333,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.AutoExpandReferencesConfigurat string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.AutoExpandReferencesConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.AutoExpandReferencesConfiguration IsAutoExpandReferences (bool autoExpandReferences) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2356,7 +2342,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.ComputedConfiguration : Micros string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.ComputedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.ComputedConfiguration IsComputed (bool computed) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2366,7 +2351,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.ComputedDefaultValueConfigurat string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.ComputedDefaultValueConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.ComputedDefaultValueConfiguration IsComputedDefaultValue (bool computedDefaultValue) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2377,7 +2361,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.ContentIDConfiguration : Micro string TermName { public virtual get; } public Microsoft.OData.ModelBuilder.Core.V1.ContentIDConfiguration HasContentID (string contentID) - public Microsoft.OData.ModelBuilder.Core.V1.ContentIDConfiguration HasDynamicProperty (string name, object value) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2386,7 +2369,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.ConventionalIDsConfiguration : string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.ConventionalIDsConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.ConventionalIDsConfiguration IsConventionalIDs (bool conventionalIDs) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2409,7 +2391,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.DefaultNamespaceConfiguration string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.DefaultNamespaceConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.DefaultNamespaceConfiguration IsDefaultNamespace (bool defaultNamespace) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2419,7 +2400,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.DereferenceableIDsConfiguratio string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.DereferenceableIDsConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.DereferenceableIDsConfiguration IsDereferenceableIDs (bool dereferenceableIDs) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2430,7 +2410,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.DescriptionConfiguration : Mic string TermName { public virtual get; } public Microsoft.OData.ModelBuilder.Core.V1.DescriptionConfiguration HasDescription (string description) - public Microsoft.OData.ModelBuilder.Core.V1.DescriptionConfiguration HasDynamicProperty (string name, object value) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2449,7 +2428,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.ImmutableConfiguration : Micro string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.ImmutableConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.ImmutableConfiguration IsImmutable (bool immutable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2459,7 +2437,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.IsLanguageDependentConfigurati string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.IsLanguageDependentConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.IsLanguageDependentConfiguration IsIsLanguageDependent (bool isLanguageDependent) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2469,7 +2446,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.IsMediaTypeConfiguration : Mic string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.IsMediaTypeConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.IsMediaTypeConfiguration IsIsMediaType (bool isMediaType) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2479,7 +2455,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.IsURLConfiguration : Microsoft string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.IsURLConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.IsURLConfiguration IsIsURL (bool isURL) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2508,7 +2483,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.LongDescriptionConfiguration : string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.LongDescriptionConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.LongDescriptionConfiguration HasLongDescription (string longDescription) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2527,7 +2501,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.MediaTypeConfiguration : Micro string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.MediaTypeConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.MediaTypeConfiguration HasMediaType (string mediaType) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2560,7 +2533,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.ODataVersionsConfiguration : M string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.ODataVersionsConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.ODataVersionsConfiguration HasODataVersions (string oDataVersions) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2570,7 +2542,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.OperationAvailableConfiguratio string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.OperationAvailableConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.OperationAvailableConfiguration IsOperationAvailable (bool operationAvailable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2599,7 +2570,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.OrderedConfiguration : Microso string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.OrderedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.OrderedConfiguration IsOrdered (bool ordered) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2618,7 +2588,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.PositionalInsertConfiguration string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.PositionalInsertConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.PositionalInsertConfiguration IsPositionalInsert (bool positionalInsert) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2646,7 +2615,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.RequiresTypeConfiguration : Mi string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.RequiresTypeConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.RequiresTypeConfiguration HasRequiresType (string requiresType) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2668,7 +2636,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.ResourcePathConfiguration : Mi string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.ResourcePathConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.ResourcePathConfiguration HasResourcePath (string resourcePath) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2698,7 +2665,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.SchemaVersionConfiguration : M string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.SchemaVersionConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.SchemaVersionConfiguration HasSchemaVersion (string schemaVersion) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } diff --git a/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.net60.bsl b/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.net60.bsl index e2729ae..4fd6a35 100644 --- a/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.net60.bsl +++ b/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.net60.bsl @@ -324,6 +324,7 @@ public abstract class Microsoft.OData.ModelBuilder.StructuralTypeConfiguration`1 public abstract class Microsoft.OData.ModelBuilder.VocabularyTermConfiguration : IRecord { protected VocabularyTermConfiguration () + Microsoft.OData.Edm.Csdl.EdmVocabularyAnnotationSerializationLocation Location { public get; public set; } string TermName { public abstract get; } public virtual void SetVocabularyAnnotations (Microsoft.OData.Edm.EdmModel model, Microsoft.OData.Edm.Vocabularies.IEdmVocabularyAnnotatable target) @@ -1653,7 +1654,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.AnnotationValuesInQuer string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.AnnotationValuesInQuerySupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.AnnotationValuesInQuerySupportedConfiguration IsAnnotationValuesInQuerySupported (bool annotationValuesInQuerySupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1663,7 +1663,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.AsynchronousRequestsSu string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.AsynchronousRequestsSupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.AsynchronousRequestsSupportedConfiguration IsAsynchronousRequestsSupported (bool asynchronousRequestsSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1673,7 +1672,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchContinueOnErrorSu string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchContinueOnErrorSupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchContinueOnErrorSupportedConfiguration IsBatchContinueOnErrorSupported (bool batchContinueOnErrorSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1699,7 +1697,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportedConfigur string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportedConfiguration IsBatchSupported (bool batchSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1774,7 +1771,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.ComputeSupportedConfig string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.ComputeSupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.ComputeSupportedConfiguration IsComputeSupported (bool computeSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1805,7 +1801,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CrossJoinSupportedConf string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.CrossJoinSupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.CrossJoinSupportedConfiguration IsCrossJoinSupported (bool crossJoinSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1940,7 +1935,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyConfigur string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyConfiguration IsIndexableByKey (bool indexableByKey) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1984,7 +1978,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.KeyAsSegmentSupportedC string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.KeyAsSegmentSupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.KeyAsSegmentSupportedConfiguration IsKeyAsSegmentSupported (bool keyAsSegmentSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1994,7 +1987,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.MediaLocationUpdateSup string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.MediaLocationUpdateSupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.MediaLocationUpdateSupportedConfiguration IsMediaLocationUpdateSupported (bool mediaLocationUpdateSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2091,7 +2083,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.QuerySegmentSupportedC string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.QuerySegmentSupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.QuerySegmentSupportedConfiguration IsQuerySegmentSupported (bool querySegmentSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2176,7 +2167,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedConfigura string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedConfiguration IsSkipSupported (bool skipSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2217,7 +2207,6 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedConfigurat string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedConfiguration IsTopSupported (bool topSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2309,7 +2298,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.AdditionalPropertiesConfigurat string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.AdditionalPropertiesConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.AdditionalPropertiesConfiguration IsAdditionalProperties (bool additionalProperties) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2338,7 +2326,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.AutoExpandConfiguration : Micr string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.AutoExpandConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.AutoExpandConfiguration IsAutoExpand (bool autoExpand) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2348,7 +2335,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.AutoExpandReferencesConfigurat string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.AutoExpandReferencesConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.AutoExpandReferencesConfiguration IsAutoExpandReferences (bool autoExpandReferences) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2358,7 +2344,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.ComputedConfiguration : Micros string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.ComputedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.ComputedConfiguration IsComputed (bool computed) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2368,7 +2353,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.ComputedDefaultValueConfigurat string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.ComputedDefaultValueConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.ComputedDefaultValueConfiguration IsComputedDefaultValue (bool computedDefaultValue) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2379,7 +2363,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.ContentIDConfiguration : Micro string TermName { public virtual get; } public Microsoft.OData.ModelBuilder.Core.V1.ContentIDConfiguration HasContentID (string contentID) - public Microsoft.OData.ModelBuilder.Core.V1.ContentIDConfiguration HasDynamicProperty (string name, object value) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2388,7 +2371,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.ConventionalIDsConfiguration : string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.ConventionalIDsConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.ConventionalIDsConfiguration IsConventionalIDs (bool conventionalIDs) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2411,7 +2393,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.DefaultNamespaceConfiguration string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.DefaultNamespaceConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.DefaultNamespaceConfiguration IsDefaultNamespace (bool defaultNamespace) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2421,7 +2402,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.DereferenceableIDsConfiguratio string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.DereferenceableIDsConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.DereferenceableIDsConfiguration IsDereferenceableIDs (bool dereferenceableIDs) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2432,7 +2412,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.DescriptionConfiguration : Mic string TermName { public virtual get; } public Microsoft.OData.ModelBuilder.Core.V1.DescriptionConfiguration HasDescription (string description) - public Microsoft.OData.ModelBuilder.Core.V1.DescriptionConfiguration HasDynamicProperty (string name, object value) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2451,7 +2430,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.ImmutableConfiguration : Micro string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.ImmutableConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.ImmutableConfiguration IsImmutable (bool immutable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2461,7 +2439,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.IsLanguageDependentConfigurati string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.IsLanguageDependentConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.IsLanguageDependentConfiguration IsIsLanguageDependent (bool isLanguageDependent) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2471,7 +2448,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.IsMediaTypeConfiguration : Mic string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.IsMediaTypeConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.IsMediaTypeConfiguration IsIsMediaType (bool isMediaType) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2481,7 +2457,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.IsURLConfiguration : Microsoft string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.IsURLConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.IsURLConfiguration IsIsURL (bool isURL) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2510,7 +2485,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.LongDescriptionConfiguration : string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.LongDescriptionConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.LongDescriptionConfiguration HasLongDescription (string longDescription) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2529,7 +2503,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.MediaTypeConfiguration : Micro string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.MediaTypeConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.MediaTypeConfiguration HasMediaType (string mediaType) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2562,7 +2535,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.ODataVersionsConfiguration : M string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.ODataVersionsConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.ODataVersionsConfiguration HasODataVersions (string oDataVersions) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2572,7 +2544,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.OperationAvailableConfiguratio string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.OperationAvailableConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.OperationAvailableConfiguration IsOperationAvailable (bool operationAvailable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2601,7 +2572,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.OrderedConfiguration : Microso string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.OrderedConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.OrderedConfiguration IsOrdered (bool ordered) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2620,7 +2590,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.PositionalInsertConfiguration string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.PositionalInsertConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.PositionalInsertConfiguration IsPositionalInsert (bool positionalInsert) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2648,7 +2617,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.RequiresTypeConfiguration : Mi string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.RequiresTypeConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.RequiresTypeConfiguration HasRequiresType (string requiresType) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2670,7 +2638,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.ResourcePathConfiguration : Mi string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.ResourcePathConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.ResourcePathConfiguration HasResourcePath (string resourcePath) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -2700,7 +2667,6 @@ public class Microsoft.OData.ModelBuilder.Core.V1.SchemaVersionConfiguration : M string TermName { public virtual get; } - public Microsoft.OData.ModelBuilder.Core.V1.SchemaVersionConfiguration HasDynamicProperty (string name, object value) public Microsoft.OData.ModelBuilder.Core.V1.SchemaVersionConfiguration HasSchemaVersion (string schemaVersion) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } diff --git a/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs index cfa6776..185e48a 100644 --- a/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs +++ b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs @@ -134,6 +134,44 @@ public void PermissionsCanBeAddedToEntitySet() Assert.Equal("*", restrictedPropertiesValue.Value); } + [Fact] + public void TopSupportedCanBeAddedAsPrimitiveAnnotationToEntitySet() + { + // Arrange & Act + var modelBuilder = new ODataModelBuilder(); + modelBuilder.EntityType().HasKey(c => c.CustomerId); + modelBuilder.EntitySet("Customers1").HasTopSupported().IsTopSupported(false); + modelBuilder.EntitySet("Customers2").HasTopSupported().IsTopSupported(true).Location = Edm.Csdl.EdmVocabularyAnnotationSerializationLocation.Inline; + + var model = modelBuilder.GetServiceModel(); + + // Assert + var csdl = model.SerializeAsXml(); + + Assert.Equal("" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "", csdl); + } + private T GetRecordValue(EdmRecordExpression record, string name) where T : class => record.FindProperty(name)?.Value as T; } diff --git a/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Core/RevisionsConfigurationTests.cs b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Core/RevisionsConfigurationTests.cs index a4236fa..4a99091 100644 --- a/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Core/RevisionsConfigurationTests.cs +++ b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Core/RevisionsConfigurationTests.cs @@ -171,6 +171,36 @@ public void RevisionsCanBeAddedToOperation() Assert.Equal(Kind.ToString(), revisionKindValue.EnumMembers.FirstOrDefault().Name); } + [Fact] + public void ComputedCanBeAddedAsPrimitiveAnnotationToProperty() + { + // Arrange & Act + var modelBuilder = new ODataModelBuilder(); + modelBuilder.EntityType().Property(c => c.Name).HasComputed().IsComputed(false); + + var model = modelBuilder.GetServiceModel(); + + // Assert + var csdl = model.SerializeAsXml(); + + Assert.Equal("" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "", csdl); + } + private EdmRecordExpression GetAnnotationTermEdmRecordExpression(IEdmVocabularyAnnotation annotation) { EdmRecordExpression revisionsProperties = null;