public void AddField <T>(string pFieldName) { #if DEBUG D.assert(!_fields.ContainsKey(pFieldName), "field does already exist!"); #endif TableField <T> f = new TableField <T>(pFieldName); AddField(f); }
/// <typeparam name="T"></typeparam> /// <param name="pRow"></param> /// <param name="pFieldName"></param> /// <param name="pValue"></param> public void SetValue <T>(int pRow, string pFieldName, T pValue) { #if DEBUG if (!_fields.ContainsKey(pFieldName)) { throw new RelayException("The field '" + pFieldName + "' does not exist"); } #endif TableField <T> field = _fields[pFieldName] as TableField <T>; #if DEBUG if (field == null) { throw new RelayException("Can't access field '" + pFieldName + "' using the type '" + typeof(T).Name + "', use '" + _fields[pFieldName].type.Name + "' instead"); } #endif if (field.entries[pRow] == null) { field.entries[pRow] = new ValueEntry <T>(); } field.entries[pRow].data = pValue; }
public ValueEntry <T> GetValueEntry <T>(int pRow, string pFieldName) { #if DEBUG if (!ContainsRow(pRow)) { throw new RelayException("The row " + pRow + " does not exist in table " + name); } if (!_fields.ContainsKey(pFieldName)) { throw new RelayException("The field " + pFieldName + " does not exist in table " + name); } TableField <T> field = _fields[pFieldName] as TableField <T>; if (field == null) { throw new RelayException("Can't access field '" + pFieldName + "' using the type '" + typeof(T).Name + "', use '" + _fields[pFieldName].type.Name + "' instead"); } if (field.entries[pRow] == null) { throw new RelayException("Can't get value since cell is null: row " + pRow + " field " + pFieldName); } #endif return((_fields[pFieldName] as TableField <T>).entries[pRow]); }
public ValueEntry <T> GetValueEntryEnsureDefault <T>(int pRow, string pFieldName, T pDefaultValue) { EnsureField <T>(pFieldName); #if DEBUG if (!ContainsRow(pRow)) { throw new RelayException("The row " + pRow + " does not exist in table " + name); } #endif TableField <T> field = _fields[pFieldName] as TableField <T>; #if DEBUG if (field == null) { throw new RelayException("Can't access field '" + pFieldName + "' using the type '" + typeof(T).Name + "', use '" + _fields[pFieldName].type.Name + "' instead"); } #endif if (field.entries[pRow] == null) { field.entries[pRow] = new ValueEntry <T>(); field.entries[pRow].data = pDefaultValue; } return((_fields[pFieldName] as TableField <T>).entries[pRow]); }