// writes a binding name private void WriteBindingKey(StonTokenWriter writer, IStonBindingName bindingKey) { if (bindingKey.IsExtension) { writer.Write('!'); } WriteStringLiteral(writer, bindingKey.Name); }
/// <summary> /// Creates a structurally equivalent member binding name from a given binding name. /// </summary> /// <param name="bindingName">The binding name to copy the structure from.</param> /// <returns>A structurally equivalent copy of the given binding name.</returns> public static IStonBindingName Copy(IStonBindingName bindingName) { if (bindingName == null) { throw new ArgumentNullException("bindingName"); } return(new StonBindingName(bindingName)); }
/// <summary> /// Checks the validity of a given STON member binding name. /// </summary> /// <param name="bindingKey">The member binding name to check the validity of.</param> public static void ValidateBindingKey(IStonBindingName bindingKey) { if (bindingKey == null) { throw new ArgumentNullException("bindingKey"); } if (bindingKey.Name == null) { throw new StonException("A member binding name cannot have non-existing name."); } }
/// <summary> /// Determines whether two binding names are equivalent. /// </summary> /// <param name="x">The first binding name to compare.</param> /// <param name="y">The second binding name to compare.</param> /// <returns>True when binding names are equivalent, false otherwise.</returns> public bool Equals(IStonBindingName x, IStonBindingName y) { if (x == y) { return(true); } else if (x == null || y == null) { return(false); } return(x.IsExtension == y.IsExtension && x.Name == y.Name); }
public int GetHashCode(IStonBindingName obj) { if (obj == null) { return(0); } int result = obj.Name.GetHashCode(); if (obj.IsExtension) { result ^= 0xf0f0f0f; } return(result); }
/// <summary> /// Creates a structurally equivalent member binding name from a given binding name. /// </summary> /// <param name="bindingName">The binding name to copy the structure from.</param> public StonBindingName(IStonBindingName bindingName) : this(bindingName.Name, bindingName.IsExtension) { }