internal static bool IsODataValueType(this IEdmTypeReference typeReference) { IEdmPrimitiveTypeReference type = typeReference.AsPrimitiveOrNull(); if (type != null) { switch (type.PrimitiveKind()) { case EdmPrimitiveTypeKind.Boolean: case EdmPrimitiveTypeKind.Byte: case EdmPrimitiveTypeKind.DateTime: case EdmPrimitiveTypeKind.DateTimeOffset: case EdmPrimitiveTypeKind.Decimal: case EdmPrimitiveTypeKind.Double: case EdmPrimitiveTypeKind.Guid: case EdmPrimitiveTypeKind.Int16: case EdmPrimitiveTypeKind.Int32: case EdmPrimitiveTypeKind.Int64: case EdmPrimitiveTypeKind.SByte: case EdmPrimitiveTypeKind.Single: case EdmPrimitiveTypeKind.Time: return true; } } return false; }
/// <summary> /// Checks whether a type reference is considered a value type in OData. /// </summary> /// <param name="typeReference">The <see cref="IEdmTypeReference"/> to check.</param> /// <returns>true if the <paramref name="typeReference"/> is considered a value type; otherwise false.</returns> /// <remarks> /// The notion of value type in the OData space is driven by the IDSMP requirements where /// Clr types denote the primitive types. /// </remarks> internal static bool IsODataValueType(this IEdmTypeReference typeReference) { DebugUtils.CheckNoExternalCallers(); IEdmPrimitiveTypeReference primitiveTypeReference = typeReference.AsPrimitiveOrNull(); if (primitiveTypeReference == null) { return false; } switch (primitiveTypeReference.PrimitiveKind()) { case EdmPrimitiveTypeKind.Boolean: case EdmPrimitiveTypeKind.Byte: case EdmPrimitiveTypeKind.DateTime: case EdmPrimitiveTypeKind.DateTimeOffset: case EdmPrimitiveTypeKind.Decimal: case EdmPrimitiveTypeKind.Double: case EdmPrimitiveTypeKind.Guid: case EdmPrimitiveTypeKind.Int16: case EdmPrimitiveTypeKind.Int32: case EdmPrimitiveTypeKind.Int64: case EdmPrimitiveTypeKind.SByte: case EdmPrimitiveTypeKind.Single: case EdmPrimitiveTypeKind.Time: return true; default: return false; } }
/// <summary> /// Checks whether a type reference is a Geometry type. /// </summary> /// <param name="typeReference">The <see cref="IEdmTypeReference"/> to check.</param> /// <returns>true if the <paramref name="typeReference"/> is a Geometry type; otherwise false.</returns> internal static bool IsGeometryType(this IEdmTypeReference typeReference) { DebugUtils.CheckNoExternalCallers(); IEdmPrimitiveTypeReference primitiveTypeReference = typeReference.AsPrimitiveOrNull(); if (primitiveTypeReference == null) { return false; } switch (primitiveTypeReference.PrimitiveKind()) { case EdmPrimitiveTypeKind.Geometry: case EdmPrimitiveTypeKind.GeometryPoint: case EdmPrimitiveTypeKind.GeometryLineString: case EdmPrimitiveTypeKind.GeometryPolygon: case EdmPrimitiveTypeKind.GeometryMultiPolygon: case EdmPrimitiveTypeKind.GeometryMultiLineString: case EdmPrimitiveTypeKind.GeometryMultiPoint: case EdmPrimitiveTypeKind.GeometryCollection: return true; default: return false; } }
internal static bool IsGeometryType(this IEdmTypeReference typeReference) { IEdmPrimitiveTypeReference type = typeReference.AsPrimitiveOrNull(); if (type != null) { switch (type.PrimitiveKind()) { case EdmPrimitiveTypeKind.Geometry: case EdmPrimitiveTypeKind.GeometryPoint: case EdmPrimitiveTypeKind.GeometryLineString: case EdmPrimitiveTypeKind.GeometryPolygon: case EdmPrimitiveTypeKind.GeometryCollection: case EdmPrimitiveTypeKind.GeometryMultiPolygon: case EdmPrimitiveTypeKind.GeometryMultiLineString: case EdmPrimitiveTypeKind.GeometryMultiPoint: return true; } } return false; }