public virtual void AddValue(int docID, BytesRef value) { if (value == null) { throw new ArgumentException("field \"" + fieldInfo.Name + "\": null value not allowed"); } if (value.Length > (ByteBlockPool.BYTE_BLOCK_SIZE - 2)) { throw new ArgumentException("DocValuesField \"" + fieldInfo.Name + "\" is too large, must be <= " + (ByteBlockPool.BYTE_BLOCK_SIZE - 2)); } if (docID != currentDoc) { FinishCurrentDoc(); } // Fill in any holes: while (currentDoc < docID) { pendingCounts.Add(0); // no values currentDoc++; } AddOneValue(value); UpdateBytesUsed(); }
public virtual void AddValue(int docID, long value) { if (docID < pending.Count) { throw new System.ArgumentException("DocValuesField \"" + fieldInfo.Name + "\" appears more than once in this document (only one value is allowed per field)"); } // Fill in any holes: for (int i = (int)pending.Count; i < docID; ++i) { pending.Add(MISSING); } pending.Add(value); if (docsWithField != null) { docsWithField = FixedBitSet.EnsureCapacity(docsWithField, docID); docsWithField.Set(docID); } UpdateBytesUsed(); }
public virtual void AddValue(int docID, BytesRef value) { if (docID < pending.Count) { throw new ArgumentException("DocValuesField \"" + fieldInfo.Name + "\" appears more than once in this document (only one value is allowed per field)"); } if (value == null) { throw new ArgumentException("field \"" + fieldInfo.Name + "\": null value not allowed"); } if (value.Length > (ByteBlockPool.BYTE_BLOCK_SIZE - 2)) { throw new ArgumentException("DocValuesField \"" + fieldInfo.Name + "\" is too large, must be <= " + (ByteBlockPool.BYTE_BLOCK_SIZE - 2)); } // Fill in any holes: while (pending.Count < docID) { pending.Add(EMPTY_ORD); } AddOneValue(value); }
public virtual void AddValue(int docID, BytesRef value) { if (docID < addedValues) { throw new ArgumentOutOfRangeException(nameof(docID), "DocValuesField \"" + fieldInfo.Name + "\" appears more than once in this document (only one value is allowed per field)"); // LUCENENET specific - changed from IllegalArgumentException to ArgumentOutOfRangeException (.NET convention) } if (value is null) { throw new ArgumentNullException("field=\"" + fieldInfo.Name + "\": null value not allowed"); // LUCENENET specific - changed from IllegalArgumentException to ArgumentNullException (.NET convention) } if (value.Length > MAX_LENGTH) { throw new ArgumentException("DocValuesField \"" + fieldInfo.Name + "\" is too large, must be <= " + MAX_LENGTH); } // Fill in any holes: while (addedValues < docID) { addedValues++; lengths.Add(0); } addedValues++; lengths.Add(value.Length); try { bytesOut.WriteBytes(value.Bytes, value.Offset, value.Length); } catch (Exception ioe) when(ioe.IsIOException()) { // Should never happen! throw RuntimeException.Create(ioe); } docsWithField = FixedBitSet.EnsureCapacity(docsWithField, docID); docsWithField.Set(docID); UpdateBytesUsed(); }
public virtual void AddValue(int docID, BytesRef value) { if (docID < addedValues) { throw new System.ArgumentException("DocValuesField \"" + fieldInfo.Name + "\" appears more than once in this document (only one value is allowed per field)"); } if (value == null) { throw new System.ArgumentException("field=\"" + fieldInfo.Name + "\": null value not allowed"); } if (value.Length > MAX_LENGTH) { throw new System.ArgumentException("DocValuesField \"" + fieldInfo.Name + "\" is too large, must be <= " + MAX_LENGTH); } // Fill in any holes: while (addedValues < docID) { addedValues++; lengths.Add(0); } addedValues++; lengths.Add(value.Length); try { bytesOut.WriteBytes(value.Bytes, value.Offset, value.Length); } catch (System.IO.IOException ioe) { // Should never happen! throw new Exception(ioe.ToString(), ioe); } docsWithField = FixedBitSet.EnsureCapacity(docsWithField, docID); docsWithField.Set(docID); UpdateBytesUsed(); }