Exemple #1
0
 protected override bool CanHandle(Type plainNetType, out OpenTypeKind mapsTo)
 {
     if (plainNetType == typeof(TestCollectionElement))
     {
         mapsTo = OpenTypeKind.CompositeType;
         return(true);
     }
     return(base.CanHandle(plainNetType, out mapsTo));
 }
Exemple #2
0
 protected virtual bool CanHandle(Type plainNetType, out OpenTypeKind mapsTo)
 {
     mapsTo = OpenTypeKind.SimpleType;
     if (plainNetType == typeof(int) || plainNetType == typeof(string))
     {
         mapsTo = OpenTypeKind.SimpleType;
         return(true);
     }
     return(Mapper.CanHandle(plainNetType, out mapsTo, CanHandle));
 }
 protected virtual bool CanHandle(Type plainNetType, out OpenTypeKind mapsTo)
 {
     mapsTo = OpenTypeKind.SimpleType;
      if (plainNetType == typeof(int) || plainNetType == typeof(string))
      {
     mapsTo = OpenTypeKind.SimpleType;
     return true;
      }
      return Mapper.CanHandle(plainNetType, out mapsTo, CanHandle);
 }
Exemple #4
0
 private bool CanHandleImpl(Type plainNetType, out OpenTypeKind mapsTo)
 {
     mapsTo = OpenTypeKind.SimpleType;
     foreach (ITypeMapper mapper in _mappers.Values)
     {
         if (mapper.CanHandle(plainNetType, out mapsTo, CanHandleImpl))
         {
             return(true);
         }
     }
     return(false);
 }
        private static bool CanHandleElementType(Type elementType, out OpenTypeKind mapsTo, CanHandleDelegate canHandleNestedTypeCallback)
        {
            mapsTo = OpenTypeKind.ArrayType;
            OpenTypeKind elementMapsTo;

            if (canHandleNestedTypeCallback(elementType, out elementMapsTo))
            {
                mapsTo = ResolveMappedTypeKind(elementType);
                return((mapsTo == OpenTypeKind.ArrayType && elementMapsTo == OpenTypeKind.SimpleType) ||
                       (mapsTo == OpenTypeKind.TabularType && elementMapsTo == OpenTypeKind.CompositeType));
            }
            return(false);
        }
 public bool CanHandle(Type plainNetType, out OpenTypeKind mapsTo, CanHandleDelegate canHandleNestedTypeCallback)
 {
     mapsTo = OpenTypeKind.CompositeType;
      foreach (PropertyInfo propertyInfo in plainNetType.GetProperties(BindingFlags.Public | BindingFlags.Instance))
      {
     if (propertyInfo.CanRead && propertyInfo.GetIndexParameters().Length == 0)
     {
        OpenTypeKind featureMapsTo;
        if (!canHandleNestedTypeCallback(propertyInfo.PropertyType, out featureMapsTo))
        {
           return false;
        }
     }
      }
      return true;
 }
Exemple #7
0
 public bool CanHandle(Type plainNetType, out OpenTypeKind mapsTo, CanHandleDelegate canHandleNestedTypeCallback)
 {
     mapsTo = OpenTypeKind.CompositeType;
     foreach (PropertyInfo propertyInfo in plainNetType.GetProperties(BindingFlags.Public | BindingFlags.Instance))
     {
         if (propertyInfo.CanRead && propertyInfo.GetIndexParameters().Length == 0)
         {
             OpenTypeKind featureMapsTo;
             if (!canHandleNestedTypeCallback(propertyInfo.PropertyType, out featureMapsTo))
             {
                 return(false);
             }
         }
     }
     return(true);
 }
        public OpenType MapType(Type plainNetType, MapTypeDelegate mapNestedTypeCallback)
        {
            Type         elementType = GetElementType(plainNetType);
            OpenTypeKind kind        = ResolveMappedTypeKind(elementType);

            if (kind == OpenTypeKind.ArrayType)
            {
                return(new ArrayType(1, mapNestedTypeCallback(elementType)));
            }
            else
            {
                CompositeType mappedElementType = (CompositeType)mapNestedTypeCallback(elementType);
                CompositeType rowType           = MakeRowType(mappedElementType);
                return(new TabularType(
                           string.Format(CultureInfo.InvariantCulture, "{0} table", AttributeUtils.GetOpenTypeName(elementType)),
                           string.Format(CultureInfo.InvariantCulture, "Table of {0}", AttributeUtils.GetOpenTypeName(elementType)),
                           rowType, new string[] { CollectionIndexColumnName }));
            }
        }
 public bool CanHandle(Type plainNetType, out OpenTypeKind mapsTo, CanHandleDelegate canHandleNestedTypeCallback)
 {
     mapsTo = OpenTypeKind.ArrayType;
     if (plainNetType.IsGenericType)
     {
         Type genericDef = plainNetType.GetGenericTypeDefinition();
         if (Array.Exists(_supportedCollectionTypes, delegate(Type t)
         {
             return(t == genericDef);
         }))
         {
             Type elementType = plainNetType.GetGenericArguments()[0];
             return(CanHandleElementType(elementType, out mapsTo, canHandleNestedTypeCallback));
         }
     }
     else if (plainNetType.IsArray && plainNetType.GetArrayRank() == 1)
     {
         return(CanHandleElementType(plainNetType.GetElementType(), out mapsTo, canHandleNestedTypeCallback));
     }
     return(false);
 }
 public bool CanHandle(Type plainNetType, out OpenTypeKind mapsTo, CanHandleDelegate canHandleNestedTypeCallback)
 {
     mapsTo = OpenTypeKind.ArrayType;
      if (plainNetType.IsGenericType)
      {
     Type genericDef = plainNetType.GetGenericTypeDefinition();
     if (Array.Exists(_supportedCollectionTypes, delegate(Type t)
                                                    {
                                                       return t == genericDef;
                                                    }))
     {
        Type elementType = plainNetType.GetGenericArguments()[0];
        return CanHandleElementType(elementType, out mapsTo, canHandleNestedTypeCallback);
     }
      }
      else if (plainNetType.IsArray && plainNetType.GetArrayRank() == 1)
      {
     return CanHandleElementType(plainNetType.GetElementType(), out mapsTo, canHandleNestedTypeCallback);
      }
      return false;
 }
Exemple #11
0
 public bool CanHandle(Type plainNetType, out OpenTypeKind mapsTo, CanHandleDelegate canHandleNestedTypeCallback)
 {
     mapsTo = OpenTypeKind.SimpleType;
     return(plainNetType.IsEnum);
 }
 public bool CanHandle(Type plainNetType, out OpenTypeKind mapsTo, CanHandleDelegate canHandleNestedTypeCallback)
 {
     mapsTo = OpenTypeKind.SimpleType;
      return SimpleType.IsSimpleType(plainNetType);
 }
Exemple #13
0
 private bool CanHandleImpl(Type plainNetType, out OpenTypeKind mapsTo)
 {
     mapsTo = OpenTypeKind.SimpleType;
      foreach (ITypeMapper mapper in _mappers.Values)
      {
     if (mapper.CanHandle(plainNetType, out mapsTo, CanHandleImpl))
     {
        return true;
     }
      }
      return false;
 }
 private static bool CanHandleElementType(Type elementType, out OpenTypeKind mapsTo, CanHandleDelegate canHandleNestedTypeCallback)
 {
     mapsTo = OpenTypeKind.ArrayType;
      OpenTypeKind elementMapsTo;
      if (canHandleNestedTypeCallback(elementType, out elementMapsTo))
      {
     mapsTo = ResolveMappedTypeKind(elementType);
     return (mapsTo == OpenTypeKind.ArrayType && elementMapsTo == OpenTypeKind.SimpleType) ||
            (mapsTo == OpenTypeKind.TabularType && elementMapsTo == OpenTypeKind.CompositeType);
      }
      return false;
 }
 protected override bool CanHandle(Type plainNetType, out OpenTypeKind mapsTo)
 {
     if (plainNetType == typeof(TestCollectionElement))
      {
     mapsTo = OpenTypeKind.CompositeType;
     return true;
      }
      return base.CanHandle(plainNetType, out mapsTo);
 }