Ejemplo n.º 1
0
		public static void MapFlatSimple(this LightDBDefinitionSet defs, IDataField dataField, IDataFieldDefinition fieldDef,
			Dictionary<string, List<SimpleDataColumn>> mappedFields)
		{
			var tableField = ((SimpleFlatFieldDefinition)fieldDef);
			AddMapping(defs, defs.GetDefaultTables(dataField.DataHolderDefinition), tableField, mappedFields,
				(FlatSimpleDataField)dataField, dataField.MappedMember);
		}
Ejemplo n.º 2
0
		public static void MapNestedArray(this LightDBDefinitionSet defs, IDataField dataField, IDataFieldDefinition fieldDef,
			Dictionary<string, List<SimpleDataColumn>> mappedFields)
		{
			var arrField = (NestedArrayFieldDefinition)fieldDef;
			var arrDataField = (NestedArrayDataField)dataField;

			var defaultTables = defs.EnsureTables(arrField.Table, dataField.DataHolderDefinition);
			var segments = arrField.Segments;

			for (var i = 0; i < segments.Length; i++)
			{
				var segment = segments[i];
				var cols = segment.GetColumns(arrDataField.Length);

				for (var j = 0; j < cols.Length; j++)
				{
					var col = cols[j];
					var arrAccessor = (NestedArrayAccessor)arrDataField.ArrayAccessors[j];

					IDataField fieldAccessor;
					if (!arrAccessor.InnerFields.TryGetValue(segment.Name, out fieldAccessor))
					{
						throw new DataHolderException("NestedArray definition {0} refered to non-existing field {1}", arrDataField,
													  segment);
					}

					AddMapping(defs, defaultTables, col, mappedFields,
						(IFlatDataFieldAccessor)fieldAccessor, fieldAccessor.MappedMember);
				}
			}
		}
Ejemplo n.º 3
0
		public static void MapNestedSimple(this LightDBDefinitionSet defs, IDataField dataField, IDataFieldDefinition fieldDef,
			Dictionary<string, List<SimpleDataColumn>> mappedFields)
		{
			var nestedFieldDefinition = ((INestedFieldDefinition)fieldDef);
			nestedFieldDefinition.EnsureFieldsNotNull(dataField.DataHolderDefinition.Name);
			defs.AddFieldMappings(nestedFieldDefinition.Fields, ((NestedSimpleDataField)dataField).InnerFields, mappedFields);
		}
Ejemplo n.º 4
0
        public static void MapNestedArray(this LightDBDefinitionSet defs, IDataField dataField,
                                          IDataFieldDefinition fieldDef, Dictionary <string, List <SimpleDataColumn> > mappedFields)
        {
            NestedArrayFieldDefinition arrayFieldDefinition = (NestedArrayFieldDefinition)fieldDef;
            NestedArrayDataField       nestedArrayDataField = (NestedArrayDataField)dataField;

            TableDefinition[] defaultTables =
                defs.EnsureTables(arrayFieldDefinition.Table, dataField.DataHolderDefinition);
            foreach (FlatArrayFieldDefinition segment in arrayFieldDefinition.Segments)
            {
                SimpleFlatFieldDefinition[] columns = segment.GetColumns(nestedArrayDataField.Length);
                for (int index = 0; index < columns.Length; ++index)
                {
                    SimpleFlatFieldDefinition fieldDef1 = columns[index];
                    IDataField dataField1;
                    if (!((NestedArrayAccessor)nestedArrayDataField.ArrayAccessors[index]).InnerFields.TryGetValue(
                            segment.Name, out dataField1))
                    {
                        throw new DataHolderException("NestedArray definition {0} refered to non-existing field {1}",
                                                      new object[2]
                        {
                            (object)nestedArrayDataField,
                            (object)segment
                        });
                    }
                    LightDBMgr.AddMapping(defs, defaultTables, fieldDef1, mappedFields,
                                          (IFlatDataFieldAccessor)dataField1, dataField1.MappedMember);
                }
            }
        }
Ejemplo n.º 5
0
        internal void AddFieldMapping(IEnumerable <IDataFieldDefinition> fieldDefs, IDataField dataField,
                                      Dictionary <string, List <SimpleDataColumn> > mappedFields)
        {
            IDataFieldDefinition fieldDef = fieldDefs
                                            .Where(def =>
                                                   def.Name.Equals(dataField.Name, StringComparison.InvariantCultureIgnoreCase))
                                            .FirstOrDefault();

            if (fieldDef == null)
            {
                string name = dataField.MappedMember.DeclaringType.Name;
                LightDBMgr.OnInvalidData(
                    "DataField \"" + dataField + "\" in Type " + name + " (DataHolder: {0}) is not mapped.",
                    (object)dataField.DataHolderDefinition);
            }
            else
            {
                if (fieldDef.DataFieldType != dataField.DataFieldType)
                {
                    string fullName = dataField.MappedMember.DeclaringType.FullName;
                    throw new DataHolderException(
                              "DataField \"" + dataField + "\" in Type " + fullName +
                              " is {0}, but was defined as: {1}", (object)dataField.DataFieldType, (object)fieldDef.DataFieldType);
                }

                LightDBMgr.DataFieldHandlers[(int)dataField.DataFieldType](this, dataField, fieldDef, mappedFields);
            }
        }
Ejemplo n.º 6
0
        public static void MapFlatSimple(this LightDBDefinitionSet defs, IDataField dataField,
                                         IDataFieldDefinition fieldDef, Dictionary <string, List <SimpleDataColumn> > mappedFields)
        {
            SimpleFlatFieldDefinition fieldDef1 = (SimpleFlatFieldDefinition)fieldDef;

            LightDBMgr.AddMapping(defs, defs.GetDefaultTables(dataField.DataHolderDefinition), fieldDef1, mappedFields,
                                  (IFlatDataFieldAccessor)dataField, dataField.MappedMember);
        }
Ejemplo n.º 7
0
        public static void MapNestedSimple(this LightDBDefinitionSet defs, IDataField dataField,
                                           IDataFieldDefinition fieldDef, Dictionary <string, List <SimpleDataColumn> > mappedFields)
        {
            INestedFieldDefinition field = (INestedFieldDefinition)fieldDef;

            field.EnsureFieldsNotNull(dataField.DataHolderDefinition.Name);
            defs.AddFieldMappings((IEnumerable <IDataFieldDefinition>)field.Fields,
                                  (IDictionary <string, IDataField>)((NestedDataField)dataField).InnerFields, mappedFields);
        }
Ejemplo n.º 8
0
		public static void MapFlatArray(this LightDBDefinitionSet defs, IDataField dataField, IDataFieldDefinition fieldDef,
			Dictionary<string, List<SimpleDataColumn>> mappedFields)
		{
			var arrFieldDef = (FlatArrayFieldDefinition)fieldDef;
			var arrDataField = (FlatArrayDataField)dataField;

			var defaultTables = defs.EnsureTables(arrFieldDef.Table, dataField.DataHolderDefinition);
			var cols = arrFieldDef.GetColumns(arrDataField.Length);
			var accessors = arrDataField.ArrayAccessors;
			for (var i = 0; i < cols.Length; i++)
			{
				var col = cols[i];
				AddMapping(defs, defaultTables, col, mappedFields, (IFlatDataFieldAccessor)accessors[i], dataField.MappedMember);
			}
		}
Ejemplo n.º 9
0
        public static void MapFlatArray(this LightDBDefinitionSet defs, IDataField dataField,
                                        IDataFieldDefinition fieldDef, Dictionary <string, List <SimpleDataColumn> > mappedFields)
        {
            FlatArrayFieldDefinition arrayFieldDefinition = (FlatArrayFieldDefinition)fieldDef;
            FlatArrayDataField       flatArrayDataField   = (FlatArrayDataField)dataField;

            TableDefinition[] defaultTables =
                defs.EnsureTables(arrayFieldDefinition.Table, dataField.DataHolderDefinition);
            SimpleFlatFieldDefinition[] columns        = arrayFieldDefinition.GetColumns(flatArrayDataField.Length);
            IDataFieldAccessor[]        arrayAccessors = flatArrayDataField.ArrayAccessors;
            for (int index = 0; index < columns.Length; ++index)
            {
                SimpleFlatFieldDefinition fieldDef1 = columns[index];
                LightDBMgr.AddMapping(defs, defaultTables, fieldDef1, mappedFields,
                                      (IFlatDataFieldAccessor)arrayAccessors[index], dataField.MappedMember);
            }
        }
Ejemplo n.º 10
0
        public static void MapNestedArray(this LightDBDefinitionSet defs, IDataField dataField, IDataFieldDefinition fieldDef,
                                          Dictionary <string, List <SimpleDataColumn> > mappedFields)
        {
            var arrField     = (NestedArrayFieldDefinition)fieldDef;
            var arrDataField = (NestedArrayDataField)dataField;

            var defaultTables = defs.EnsureTables(arrField.Table, dataField.DataHolderDefinition);
            var segments      = arrField.Segments;

            for (var i = 0; i < segments.Length; i++)
            {
                var segment = segments[i];
                var cols    = segment.GetColumns(arrDataField.Length);

                for (var j = 0; j < cols.Length; j++)
                {
                    var col         = cols[j];
                    var arrAccessor = (NestedArrayAccessor)arrDataField.ArrayAccessors[j];

                    IDataField fieldAccessor;
                    if (!arrAccessor.InnerFields.TryGetValue(segment.Name, out fieldAccessor))
                    {
                        throw new DataHolderException("NestedArray definition {0} refered to non-existing field {1}", arrDataField,
                                                      segment);
                    }

                    AddMapping(defs, defaultTables, col, mappedFields,
                               (IFlatDataFieldAccessor)fieldAccessor, fieldAccessor.MappedMember);
                }
            }
        }
Ejemplo n.º 11
0
        public static void MapFlatArray(this LightDBDefinitionSet defs, IDataField dataField, IDataFieldDefinition fieldDef,
                                        Dictionary <string, List <SimpleDataColumn> > mappedFields)
        {
            var arrFieldDef  = (FlatArrayFieldDefinition)fieldDef;
            var arrDataField = (FlatArrayDataField)dataField;

            var defaultTables = defs.EnsureTables(arrFieldDef.Table, dataField.DataHolderDefinition);
            var cols          = arrFieldDef.GetColumns(arrDataField.Length);
            var accessors     = arrDataField.ArrayAccessors;

            for (var i = 0; i < cols.Length; i++)
            {
                var col = cols[i];
                AddMapping(defs, defaultTables, col, mappedFields, (IFlatDataFieldAccessor)accessors[i], dataField.MappedMember);
            }
        }
Ejemplo n.º 12
0
        public static void MapNestedSimple(this LightDBDefinitionSet defs, IDataField dataField, IDataFieldDefinition fieldDef,
                                           Dictionary <string, List <SimpleDataColumn> > mappedFields)
        {
            var nestedFieldDefinition = ((INestedFieldDefinition)fieldDef);

            nestedFieldDefinition.EnsureFieldsNotNull(dataField.DataHolderDefinition.Name);
            defs.AddFieldMappings(nestedFieldDefinition.Fields, ((NestedSimpleDataField)dataField).InnerFields, mappedFields);
        }
Ejemplo n.º 13
0
        public static void MapFlatSimple(this LightDBDefinitionSet defs, IDataField dataField, IDataFieldDefinition fieldDef,
                                         Dictionary <string, List <SimpleDataColumn> > mappedFields)
        {
            var tableField = ((SimpleFlatFieldDefinition)fieldDef);

            AddMapping(defs, defs.GetDefaultTables(dataField.DataHolderDefinition), tableField, mappedFields,
                       (FlatSimpleDataField)dataField, dataField.MappedMember);
        }