/// <summary> /// Writes a QualifierId using its underlying string representation /// </summary> public override void Write(QualifierId qualifierId) { Start <QualifierId>(); Write(qualifierId.IsValid); if (qualifierId.IsValid) { var qualifier = m_qualifierTable.GetQualifier(qualifierId); // the qualifier is stored as <key, value>[] var keyValues = new Tuple <string, string> [qualifier.Keys.Count]; for (var i = 0; i < keyValues.Length; i++) { keyValues[i] = new Tuple <string, string>(qualifier.Keys[i].ToString(m_stringTable), qualifier.Values[i].ToString(m_stringTable)); } Write( ReadOnlyArray <Tuple <string, string> > .FromWithoutCopy(keyValues), (writer, value) => { writer.Write(value.Item1); writer.Write(value.Item2); }); } End(); }
private string ToString(QualifierId qualifierId, QualifierTable qualifierTable, FrontEndContext context) { Contract.Requires(context != null); Contract.Requires(qualifierTable != null); Qualifier qualifier = qualifierTable.GetQualifier(qualifierId); return(qualifier.ToDisplayString(context.StringTable)); }
/// <summary> /// Creates a qualifier value given a qualifier id. /// </summary> public static QualifierValue Create(QualifierId qualifierId, QualifierTable qualifierTable, StringTable stringTable) { Contract.Requires(qualifierId.IsValid); Contract.Requires(qualifierTable != null); Contract.Requires(qualifierTable.IsValidQualifierId(qualifierId)); if (qualifierTable.EmptyQualifierId == qualifierId) { return(CreateEmpty(qualifierTable)); } Qualifier qualifier = qualifierTable.GetQualifier(qualifierId); var bindings = new List <Binding>(qualifier.Keys.Count); for (int i = 0; i < qualifier.Keys.Count; ++i) { bindings.Add(new Binding(qualifier.Keys[i], qualifier.Values[i].ToString(stringTable), location: default(LineInfo))); } return(new QualifierValue(ObjectLiteral.Create(bindings, default(LineInfo), default(AbsolutePath)), qualifierId)); }