internal TypedColumn(DataViewSchema.Column column, bool isImputed, SharedColumnState state) { Column = column; SharedState = state; IsImputed = isImputed; }
internal NumericTypedColumn(DataViewSchema.Column column, bool isNullable, bool isImputed, SharedColumnState state) : base(column, isImputed, state) { IsNullable = isNullable; }
internal ByteTypedColumn(DataViewSchema.Column column, bool isNullable, bool isImputed, SharedColumnState state) : base(column, isNullable, isImputed, state) { }
internal static TypedColumn CreateTypedColumn(DataViewSchema.Column column, string[] optionalColumns, string[] allImputedColumns, SharedColumnState state) { var type = column.Type.RawType.ToString(); if (type == typeof(sbyte).ToString()) { return(new SByteTypedColumn(column, optionalColumns.Contains(column.Name), allImputedColumns.Contains(column.Name), state)); } else if (type == typeof(short).ToString()) { return(new ShortTypedColumn(column, optionalColumns.Contains(column.Name), allImputedColumns.Contains(column.Name), state)); } else if (type == typeof(int).ToString()) { return(new IntTypedColumn(column, optionalColumns.Contains(column.Name), allImputedColumns.Contains(column.Name), state)); } else if (type == typeof(long).ToString()) { return(new LongTypedColumn(column, optionalColumns.Contains(column.Name), allImputedColumns.Contains(column.Name), state)); } else if (type == typeof(byte).ToString()) { return(new ByteTypedColumn(column, optionalColumns.Contains(column.Name), allImputedColumns.Contains(column.Name), state)); } else if (type == typeof(ushort).ToString()) { return(new UShortTypedColumn(column, optionalColumns.Contains(column.Name), allImputedColumns.Contains(column.Name), state)); } else if (type == typeof(uint).ToString()) { return(new UIntTypedColumn(column, optionalColumns.Contains(column.Name), allImputedColumns.Contains(column.Name), state)); } else if (type == typeof(ulong).ToString()) { return(new ULongTypedColumn(column, optionalColumns.Contains(column.Name), allImputedColumns.Contains(column.Name), state)); } else if (type == typeof(float).ToString()) { return(new FloatTypedColumn(column, optionalColumns.Contains(column.Name), allImputedColumns.Contains(column.Name), state)); } else if (type == typeof(double).ToString()) { return(new DoubleTypedColumn(column, optionalColumns.Contains(column.Name), allImputedColumns.Contains(column.Name), state)); } else if (type == typeof(ReadOnlyMemory <char>).ToString()) { return(new StringTypedColumn(column, optionalColumns.Contains(column.Name), allImputedColumns.Contains(column.Name), state)); } else if (type == typeof(bool).ToString()) { return(new BoolTypedColumn(column, optionalColumns.Contains(column.Name), allImputedColumns.Contains(column.Name), state)); } else if (type == typeof(DateTime).ToString()) { return(new DateTimeTypedColumn(column, optionalColumns.Contains(column.Name), allImputedColumns.Contains(column.Name), state)); } throw new InvalidOperationException($"Unsupported type {type}"); }