Example #1
0
 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;
            }
        }
Example #4
0
 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;
 }