internal Enumerator(MultiValueDictionary <TKey, TValue> multiValueDictionary) { this._multiValueDictionary = multiValueDictionary; this._version = multiValueDictionary._version; this._enumerator = multiValueDictionary._dictionary.GetEnumerator(); this._state = EnumerationState.BeforeFirst; this.Current = default; }
private string GenerateNamespace(EnumerationState state, string dirname) { dirname = fs.GetFileName(dirname) .Replace('-', '_') .Replace('.', '_'); return(string.Format( state.Namespace.Length > 0 ? "{0}.{1}" : "{1}", state.Namespace, dirname)); }
/// <summary> /// Throws exception if <see cref="IsDisposed"/> is true or <see cref="EnumerationState"/> is not equals <see cref="DataSourceEnumerationState.Enumerable"/>. /// </summary> protected void EnsureEnumerate() { if (IsDisposed) { throw new ObjectDisposedException("The data source has been disposed and can not be enumerated again"); } if (!EnumerationState.HasFlag(DataSourceEnumerationState.Enumerable)) { throw new InvalidOperationException("The data source has been already enumerated"); } }
public void ProcessDirectoryFiles(EnumerationState state) { foreach (var file in fs.GetFiles(state.DirectoryName, "*.py", SearchOption.TopDirectoryOnly)) { var xlator = new Translator( state.Namespace, fs.GetFileNameWithoutExtension(file), new FileSystem(), new ConsoleLogger()); xlator.TranslateFile(file, file + ".cs"); } }
public void ProcessDirectoryFiles(EnumerationState state) { foreach (var file in Directory.GetFiles(state.DirectoryName, "*.py", SearchOption.TopDirectoryOnly)) { var xlator = new Translator( state.Namespace, Path.GetFileNameWithoutExtension(file), new FileSystem(), new ConsoleLogger()); xlator.TranslateFile(file, file + ".cs"); } }
public void SkipThisNode() { switch (myState) { case EnumerationState.EnumerateThis: myState = EnumerationState.StopNextTime; break; case EnumerationState.EnumerateDescendants: myState = myCurrent == myRoot ? EnumerationState.StopNextTime : EnumerationState.EnumerateNextSibling; break; } }
public bool MoveNext() { var treeNode = myCurrent; if (treeNode == null) { return(false); } switch (myState) { case EnumerationState.EnumerateThis: myState = (treeNode.FirstChild != null) ? EnumerationState.EnumerateDescendants : EnumerationState.StopNextTime; return(true); case EnumerationState.EnumerateDescendants: var firstChild = (TreeElement)treeNode.FirstChild; if (firstChild != null) { myCurrent = firstChild; return(true); } goto case EnumerationState.EnumerateNextSibling; case EnumerationState.EnumerateNextSibling: var nextSibling = treeNode.nextSibling; if (nextSibling != null) { myCurrent = nextSibling; myState = EnumerationState.EnumerateDescendants; return(true); } break; case EnumerationState.StopNextTime: return(false); } while (true) { myCurrent = treeNode.parent; treeNode = myCurrent; if (treeNode == myRoot | treeNode == null) // yes, | { return(false); } var nextSibling = treeNode.nextSibling; if (nextSibling != null) { myCurrent = nextSibling; // FIX: This line is missing in the SDK version myState = EnumerationState.EnumerateDescendants; return(true); } } }
internal FixedThisAndDescendantsEnumerator([CanBeNull] ITreeNode root) { myRoot = (TreeElement)root; myCurrent = (TreeElement)root; myState = EnumerationState.EnumerateThis; }
private static string GenerateNamespace(EnumerationState state, string dirname) { dirname = Path.GetFileName(dirname) .Replace('-', '_') .Replace('.', '_'); return string.Format( state.Namespace.Length > 0 ? "{0}.{1}" : "{1}", state.Namespace, dirname); }