private void CreateRecordValue(VHDL.type.RecordType type) { _values = new Dictionary <string, AbstractValue>(); foreach (var v in type.Elements) { foreach (string name in v.Identifiers) { _values.Add(name, null); } } }
private void CreateRecordValue(VHDL.type.RecordType recordType, IList <AbstractValue> _value) { _values = new Dictionary <string, AbstractValue>(); int index = 0; foreach (var v in (Type.Type as VHDL.type.RecordType).Elements) { foreach (string name in v.Identifiers) { _values.Add(name, _value[index]); index++; } } }
private void CreateRecordValue(VHDL.type.RecordType type, IDictionary <string, AbstractValue> _value) { _values = new Dictionary <string, AbstractValue>(); foreach (var v in _value) { if (IsContainField(v.Key)) { _values.Add(v.Key, v.Value); } else { throw new Exception(string.Format("Invalid field name {0}.", v.Key)); } } }
private bool IsContainField(string name) { VHDL.type.RecordType type = Type.Type as VHDL.type.RecordType; foreach (var v in type.Elements) { foreach (string fieldName in v.Identifiers) { if (fieldName.Equals(name, StringComparison.InvariantCultureIgnoreCase)) { return(true); } } } return(false); }
/// <summary> /// Конструктор /// </summary> /// <param name="type"></param> public RecordValue(VHDL.type.RecordType type) : base(ModellingType.CreateModellingType(type)) { CreateRecordValue(type); }
/// <summary> /// Конструктор /// </summary> /// <param name="type"></param> public RecordValue(VHDL.type.RecordType type, IDictionary <string, AbstractValue> _value) : base(ModellingType.CreateModellingType(type)) { CreateRecordValue(type, _values); }