Lucene.Net.Facet: Added [WritableArray] attribute and SuppressMessage attribute from code analysis to all array properties
Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/a03ef7cb Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/a03ef7cb Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/a03ef7cb Branch: refs/heads/api-work Commit: a03ef7cbaa8e185f9d4a2da98bab095d8f963bbf Parents: 8a0f30b Author: Shad Storhaug <[email protected]> Authored: Tue Jan 31 18:28:23 2017 +0700 Committer: Shad Storhaug <[email protected]> Committed: Tue Jan 31 18:42:31 2017 +0700 ---------------------------------------------------------------------- src/Lucene.Net.Facet/FacetField.cs | 5 ++++- src/Lucene.Net.Facet/FacetResult.cs | 9 +++++++-- src/Lucene.Net.Facet/FacetsCollector.cs | 4 ++++ .../Taxonomy/AssociationFacetField.cs | 3 +++ .../Taxonomy/CachedOrdinalsReader.cs | 9 +++++++-- src/Lucene.Net.Facet/Taxonomy/CategoryPath.cs | 5 ++++- .../Taxonomy/Directory/DirectoryTaxonomyWriter.cs | 2 +- .../Taxonomy/Directory/TaxonomyIndexArrays.cs | 12 ++++++++++-- src/Lucene.Net.Facet/Taxonomy/FacetLabel.cs | 5 ++++- .../Taxonomy/ParallelTaxonomyArrays.cs | 17 +++++++++++++---- src/Lucene.Net.Tests.Facet/TestApiConsistency.cs | 4 ---- 11 files changed, 57 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucenenet/blob/a03ef7cb/src/Lucene.Net.Facet/FacetField.cs ---------------------------------------------------------------------- diff --git a/src/Lucene.Net.Facet/FacetField.cs b/src/Lucene.Net.Facet/FacetField.cs index 1b74824..1dc690e 100644 --- a/src/Lucene.Net.Facet/FacetField.cs +++ b/src/Lucene.Net.Facet/FacetField.cs @@ -1,4 +1,5 @@ using Lucene.Net.Support; +using System.Diagnostics.CodeAnalysis; namespace Lucene.Net.Facet { @@ -48,7 +49,9 @@ namespace Lucene.Net.Facet /// <summary> /// Path for this field. /// </summary> - public string[] Path { get; private set; } // LUCENENET TODO: public array property + [WritableArray] + [SuppressMessage("Microsoft.Performance", "CA1819", Justification = "Lucene's design requires some writable array properties")] + public string[] Path { get; private set; } /// <summary> /// Creates the this from <paramref name="dim"/> and http://git-wip-us.apache.org/repos/asf/lucenenet/blob/a03ef7cb/src/Lucene.Net.Facet/FacetResult.cs ---------------------------------------------------------------------- diff --git a/src/Lucene.Net.Facet/FacetResult.cs b/src/Lucene.Net.Facet/FacetResult.cs index 09beec4..294d2f5 100644 --- a/src/Lucene.Net.Facet/FacetResult.cs +++ b/src/Lucene.Net.Facet/FacetResult.cs @@ -1,5 +1,6 @@ using Lucene.Net.Support; using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Text; @@ -35,7 +36,9 @@ namespace Lucene.Net.Facet /// <summary> /// Path whose children were requested. /// </summary> - public string[] Path { get; private set; } // LUCENENET TODO: public array property + [WritableArray] + [SuppressMessage("Microsoft.Performance", "CA1819", Justification = "Lucene's design requires some writable array properties")] + public string[] Path { get; private set; } /// <summary> /// Total value for this path (sum of all child counts, or @@ -52,7 +55,9 @@ namespace Lucene.Net.Facet /// <summary> /// Child counts. /// </summary> - public LabelAndValue[] LabelValues { get; private set; } // LUCENENET TODO: public array property + [WritableArray] + [SuppressMessage("Microsoft.Performance", "CA1819", Justification = "Lucene's design requires some writable array properties")] + public LabelAndValue[] LabelValues { get; private set; } /// <summary> /// The original data type of <see cref="Value"/> that was passed through the constructor. http://git-wip-us.apache.org/repos/asf/lucenenet/blob/a03ef7cb/src/Lucene.Net.Facet/FacetsCollector.cs ---------------------------------------------------------------------- diff --git a/src/Lucene.Net.Facet/FacetsCollector.cs b/src/Lucene.Net.Facet/FacetsCollector.cs index adb6d83..df3d517 100644 --- a/src/Lucene.Net.Facet/FacetsCollector.cs +++ b/src/Lucene.Net.Facet/FacetsCollector.cs @@ -1,8 +1,10 @@ using Lucene.Net.Index; using Lucene.Net.Search; +using Lucene.Net.Support; using Lucene.Net.Util; using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; namespace Lucene.Net.Facet { @@ -83,6 +85,8 @@ namespace Lucene.Net.Facet /// <summary> /// Non-sparse scores array. </summary> + [WritableArray] + [SuppressMessage("Microsoft.Performance", "CA1819", Justification = "Lucene's design requires some writable array properties")] public float[] Scores { get; private set; } /// <summary> http://git-wip-us.apache.org/repos/asf/lucenenet/blob/a03ef7cb/src/Lucene.Net.Facet/Taxonomy/AssociationFacetField.cs ---------------------------------------------------------------------- diff --git a/src/Lucene.Net.Facet/Taxonomy/AssociationFacetField.cs b/src/Lucene.Net.Facet/Taxonomy/AssociationFacetField.cs index c4beaab..66ee6ee 100644 --- a/src/Lucene.Net.Facet/Taxonomy/AssociationFacetField.cs +++ b/src/Lucene.Net.Facet/Taxonomy/AssociationFacetField.cs @@ -1,4 +1,5 @@ using Lucene.Net.Support; +using System.Diagnostics.CodeAnalysis; namespace Lucene.Net.Facet.Taxonomy { @@ -54,6 +55,8 @@ namespace Lucene.Net.Facet.Taxonomy /// <summary> /// Facet path for this field. /// </summary> + [WritableArray] + [SuppressMessage("Microsoft.Performance", "CA1819", Justification = "Lucene's design requires some writable array properties")] public string[] Path { get; private set; } /// <summary> http://git-wip-us.apache.org/repos/asf/lucenenet/blob/a03ef7cb/src/Lucene.Net.Facet/Taxonomy/CachedOrdinalsReader.cs ---------------------------------------------------------------------- diff --git a/src/Lucene.Net.Facet/Taxonomy/CachedOrdinalsReader.cs b/src/Lucene.Net.Facet/Taxonomy/CachedOrdinalsReader.cs index 44f9bec..31ca1a5 100644 --- a/src/Lucene.Net.Facet/Taxonomy/CachedOrdinalsReader.cs +++ b/src/Lucene.Net.Facet/Taxonomy/CachedOrdinalsReader.cs @@ -1,6 +1,7 @@ using Lucene.Net.Support; using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Threading; namespace Lucene.Net.Facet.Taxonomy @@ -129,12 +130,16 @@ namespace Lucene.Net.Facet.Taxonomy /// <summary> /// Index into <see cref="Ordinals"/> for each document. /// </summary> - public int[] Offsets { get; private set; } // LUCENENET TODO: property returning array + [WritableArray] + [SuppressMessage("Microsoft.Performance", "CA1819", Justification = "Lucene's design requires some writable array properties")] + public int[] Offsets { get; private set; } /// <summary> /// Holds ords for all docs. /// </summary> - public int[] Ordinals { get; private set; } // LUCENENET TODO: property returning array + [WritableArray] + [SuppressMessage("Microsoft.Performance", "CA1819", Justification = "Lucene's design requires some writable array properties")] + public int[] Ordinals { get; private set; } /// <summary> /// Creates a new <see cref="CachedOrds"/> from the <see cref="BinaryDocValues"/>. http://git-wip-us.apache.org/repos/asf/lucenenet/blob/a03ef7cb/src/Lucene.Net.Facet/Taxonomy/CategoryPath.cs ---------------------------------------------------------------------- diff --git a/src/Lucene.Net.Facet/Taxonomy/CategoryPath.cs b/src/Lucene.Net.Facet/Taxonomy/CategoryPath.cs index 6793a3f..4810804 100644 --- a/src/Lucene.Net.Facet/Taxonomy/CategoryPath.cs +++ b/src/Lucene.Net.Facet/Taxonomy/CategoryPath.cs @@ -1,6 +1,7 @@ using Lucene.Net.Support; using System; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.Text; namespace Lucene.Net.Facet.Taxonomy @@ -41,7 +42,9 @@ namespace Lucene.Net.Facet.Taxonomy /// <see cref="Subpath(int)"/>, therefore you should traverse the array up to /// <see cref="Length"/> for this path's components. /// </summary> - public string[] Components { get; private set; } // LUCENENET TODO: public array property + [WritableArray] + [SuppressMessage("Microsoft.Performance", "CA1819", Justification = "Lucene's design requires some writable array properties")] + public string[] Components { get; private set; } /// <summary> /// The number of components of this <see cref="CategoryPath"/>. </summary> http://git-wip-us.apache.org/repos/asf/lucenenet/blob/a03ef7cb/src/Lucene.Net.Facet/Taxonomy/Directory/DirectoryTaxonomyWriter.cs ---------------------------------------------------------------------- diff --git a/src/Lucene.Net.Facet/Taxonomy/Directory/DirectoryTaxonomyWriter.cs b/src/Lucene.Net.Facet/Taxonomy/Directory/DirectoryTaxonomyWriter.cs index b34a190..a0e4c64 100644 --- a/src/Lucene.Net.Facet/Taxonomy/Directory/DirectoryTaxonomyWriter.cs +++ b/src/Lucene.Net.Facet/Taxonomy/Directory/DirectoryTaxonomyWriter.cs @@ -1022,7 +1022,7 @@ namespace Lucene.Net.Facet.Taxonomy.Directory public int[] GetMap() { - return map.ToArray(); // LUCENENET specific: Since this is clearly not meant to be written to, we are cloning the array + return (int[])map.Clone(); // LUCENENET specific: Since this is clearly not meant to be written to, we are cloning the array https://msdn.microsoft.com/en-us/library/0fss9skc.aspx } } http://git-wip-us.apache.org/repos/asf/lucenenet/blob/a03ef7cb/src/Lucene.Net.Facet/Taxonomy/Directory/TaxonomyIndexArrays.cs ---------------------------------------------------------------------- diff --git a/src/Lucene.Net.Facet/Taxonomy/Directory/TaxonomyIndexArrays.cs b/src/Lucene.Net.Facet/Taxonomy/Directory/TaxonomyIndexArrays.cs index fab87b6..e939ede 100644 --- a/src/Lucene.Net.Facet/Taxonomy/Directory/TaxonomyIndexArrays.cs +++ b/src/Lucene.Net.Facet/Taxonomy/Directory/TaxonomyIndexArrays.cs @@ -1,5 +1,7 @@ -using System; +using Lucene.Net.Support; +using System; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; namespace Lucene.Net.Facet.Taxonomy.Directory { @@ -210,6 +212,8 @@ namespace Lucene.Net.Facet.Taxonomy.Directory /// Returns the parents array, where <c>Parents[i]</c> denotes the parent of /// category ordinal <c>i</c>. /// </summary> + [WritableArray] + [SuppressMessage("Microsoft.Performance", "CA1819", Justification = "Lucene's design requires some writable array properties")] public override int[] Parents { get @@ -224,7 +228,9 @@ namespace Lucene.Net.Facet.Taxonomy.Directory /// category that was added last to the taxonomy as an immediate child of /// <c>i</c>. /// </summary> - public override int[] Children // LUCENENET TODO: Change to GetChildren() (check consistency) + [WritableArray] + [SuppressMessage("Microsoft.Performance", "CA1819", Justification = "Lucene's design requires some writable array properties")] + public override int[] Children { get { @@ -243,6 +249,8 @@ namespace Lucene.Net.Facet.Taxonomy.Directory /// of category ordinal <c>i</c>. The sibling is defined as the previous /// youngest child of <c>Parents[i]</c>. /// </summary> + [WritableArray] + [SuppressMessage("Microsoft.Performance", "CA1819", Justification = "Lucene's design requires some writable array properties")] public override int[] Siblings { get http://git-wip-us.apache.org/repos/asf/lucenenet/blob/a03ef7cb/src/Lucene.Net.Facet/Taxonomy/FacetLabel.cs ---------------------------------------------------------------------- diff --git a/src/Lucene.Net.Facet/Taxonomy/FacetLabel.cs b/src/Lucene.Net.Facet/Taxonomy/FacetLabel.cs index c823e7a..10ff894 100644 --- a/src/Lucene.Net.Facet/Taxonomy/FacetLabel.cs +++ b/src/Lucene.Net.Facet/Taxonomy/FacetLabel.cs @@ -1,6 +1,7 @@ using Lucene.Net.Support; using System; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; namespace Lucene.Net.Facet.Taxonomy { @@ -50,7 +51,9 @@ namespace Lucene.Net.Facet.Taxonomy /// <see cref="Subpath(int)"/>, therefore you should traverse the array up to /// <see cref="Length"/> for this path's components. /// </summary> - public string[] Components { get; private set; } // LUCENENET TODO: public array property + [WritableArray] + [SuppressMessage("Microsoft.Performance", "CA1819", Justification = "Lucene's design requires some writable array properties")] + public string[] Components { get; private set; } /// <summary> /// The number of components of this <see cref="FacetLabel"/>. http://git-wip-us.apache.org/repos/asf/lucenenet/blob/a03ef7cb/src/Lucene.Net.Facet/Taxonomy/ParallelTaxonomyArrays.cs ---------------------------------------------------------------------- diff --git a/src/Lucene.Net.Facet/Taxonomy/ParallelTaxonomyArrays.cs b/src/Lucene.Net.Facet/Taxonomy/ParallelTaxonomyArrays.cs index 510127a..c5db947 100644 --- a/src/Lucene.Net.Facet/Taxonomy/ParallelTaxonomyArrays.cs +++ b/src/Lucene.Net.Facet/Taxonomy/ParallelTaxonomyArrays.cs @@ -1,4 +1,7 @@ -namespace Lucene.Net.Facet.Taxonomy +using Lucene.Net.Support; +using System.Diagnostics.CodeAnalysis; + +namespace Lucene.Net.Facet.Taxonomy { /* * Licensed to the Apache Software Foundation (ASF) under one or more @@ -53,18 +56,24 @@ /// Returns the parents array, where <c>Parents[i]</c> denotes the parent of /// category ordinal <c>i</c>. /// </summary> - public abstract int[] Parents { get; } // LUCENENET TODO: Change to GetParents() + [WritableArray] + [SuppressMessage("Microsoft.Performance", "CA1819", Justification = "Lucene's design requires some writable array properties")] + public abstract int[] Parents { get; } /// <summary> /// Returns the children array, where <c>Children[i]</c> denotes a child of /// category ordinal <c>i</c>. /// </summary> - public abstract int[] Children { get; } // LUCENENET TODO: Change to GetChildren() + [WritableArray] + [SuppressMessage("Microsoft.Performance", "CA1819", Justification = "Lucene's design requires some writable array properties")] + public abstract int[] Children { get; } /// <summary> /// Returns the siblings array, where <c>Siblings[i]</c> denotes the sibling /// of category ordinal <c>i</c>. /// </summary> - public abstract int[] Siblings { get; } // LUCENENET TODO: Change to GetSiblings() + [WritableArray] + [SuppressMessage("Microsoft.Performance", "CA1819", Justification = "Lucene's design requires some writable array properties")] + public abstract int[] Siblings { get; } } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/lucenenet/blob/a03ef7cb/src/Lucene.Net.Tests.Facet/TestApiConsistency.cs ---------------------------------------------------------------------- diff --git a/src/Lucene.Net.Tests.Facet/TestApiConsistency.cs b/src/Lucene.Net.Tests.Facet/TestApiConsistency.cs index b011a9e..4842da5 100644 --- a/src/Lucene.Net.Tests.Facet/TestApiConsistency.cs +++ b/src/Lucene.Net.Tests.Facet/TestApiConsistency.cs @@ -2,10 +2,6 @@ using Lucene.Net.Util; using NUnit.Framework; using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace Lucene.Net.Tests.Facet {
