This is an automated email from the ASF dual-hosted git repository. nightowl888 pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/lucenenet.git
commit a2b4c31195f18bdfc7592ff86a1dbe3ceed2a9f1 Author: Shad Storhaug <[email protected]> AuthorDate: Tue Nov 1 00:16:26 2022 +0700 Lucene.Net.Util.OfflineSorter (ByteSequencesReader + ByteSequencesWriter): Added constructor overloads to pass the file name as a string (.NET convention) --- src/Lucene.Net/Util/OfflineSorter.cs | 38 ++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/src/Lucene.Net/Util/OfflineSorter.cs b/src/Lucene.Net/Util/OfflineSorter.cs index 333d340b3..afd208770 100644 --- a/src/Lucene.Net/Util/OfflineSorter.cs +++ b/src/Lucene.Net/Util/OfflineSorter.cs @@ -554,6 +554,14 @@ namespace Lucene.Net.Util { } + /// <summary> + /// Constructs a <see cref="ByteSequencesWriter"/> to the provided <see cref="FileInfo"/>. </summary> + /// <exception cref="ArgumentException"><paramref name="path"/> is <c>null</c> or whitespace.</exception> + public ByteSequencesWriter(string path) + : this(NewBinaryWriterDataOutput(path)) + { + } + /// <summary> /// Constructs a <see cref="ByteSequencesWriter"/> to the provided <see cref="DataOutput"/>. </summary> /// <exception cref="ArgumentNullException"><paramref name="os"/> is <c>null</c>.</exception> @@ -573,15 +581,28 @@ namespace Lucene.Net.Util if (file is null) throw new ArgumentNullException(nameof(file)); - string fileName = file.FullName; + return NewBinaryWriterDataOutput(file.FullName); + } + + /// <summary> + /// LUCENENET specific - ensures the file has been created with no BOM + /// if it doesn't already exist and opens the file for writing. + /// Java doesn't use a BOM by default. + /// </summary> + /// <exception cref="ArgumentException"><paramref name="path"/> is <c>null</c> or whitespace.</exception> + private static BinaryWriterDataOutput NewBinaryWriterDataOutput(string path) + { + if (string.IsNullOrWhiteSpace(path)) + throw new ArgumentException($"{nameof(path)} may not be null or whitespace."); + // Create the file (without BOM) if it doesn't already exist - if (!File.Exists(fileName)) + if (!File.Exists(path)) { // Create the file - File.WriteAllText(fileName, string.Empty, new UTF8Encoding(false) /* No BOM */); + File.WriteAllText(path, string.Empty, new UTF8Encoding(false) /* No BOM */); } - return new BinaryWriterDataOutput(new BinaryWriter(new FileStream(fileName, FileMode.Open, FileAccess.Write))); + return new BinaryWriterDataOutput(new BinaryWriter(new FileStream(path, FileMode.Open, FileAccess.Write))); } /// <summary> @@ -673,6 +694,15 @@ namespace Lucene.Net.Util { } + /// <summary> + /// Constructs a <see cref="ByteSequencesReader"/> from the provided <paramref name="path"/>. </summary> + /// <exception cref="ArgumentException"><paramref name="path"/> is <c>null</c> or whitespace.</exception> + // LUCENENET specific + public ByteSequencesReader(string path) + : this(!string.IsNullOrWhiteSpace(path) ? new FileInfo(path) : throw new ArgumentException($"{nameof(path)} may not be null or whitespace.")) + { + } + /// <summary> /// Constructs a <see cref="ByteSequencesReader"/> from the provided <see cref="DataInput"/>. </summary> /// <exception cref="ArgumentNullException"><paramref name="inputStream"/> is <c>null</c>.</exception>
