public JDirectoryWriter(JsonTextWriter jsonTextWriter) { Writer = jsonTextWriter ?? throw new ArgumentNullException(nameof(jsonTextWriter)); directoriesNodeState = JsonNodeState.NotOpened; filesPropertyNodeState = JsonNodeState.NotOpened; }
public void WriteStart(string directoryName) { WriteStartDirectoryInternal(directoryName); directoriesNodeState = JsonNodeState.NotOpened; filesPropertyNodeState = JsonNodeState.NotOpened; }
private void WriteEndFilesArray() { if (filesPropertyNodeState != JsonNodeState.Opened) { return; } Writer.WriteEndArray(); filesPropertyNodeState = JsonNodeState.Closed; }
private void WriteEndDirectoriesArray() { if (directoriesNodeState != JsonNodeState.Opened) { return; } Writer.WriteEndArray(); directoriesNodeState = JsonNodeState.Closed; }
private void WriteStartDirectoriesArray() { switch (directoriesNodeState) { case JsonNodeState.NotOpened: Writer.WritePropertyName("d"); Writer.WriteStartArray(); directoriesNodeState = JsonNodeState.Opened; break; case JsonNodeState.Closed: throw new Exception("Directories list is already closed. No more directories can be added."); case JsonNodeState.Opened: break; default: throw new ArgumentOutOfRangeException(); } }