public override FieldWriter AddField(FieldInfo field, long termsFilePointer) { ////System.out.println("VGW: field=" + field.name); policy.NewField(field); FSTFieldWriter writer = new FSTFieldWriter(this, field, termsFilePointer); fields.Add(writer); return(writer); }
protected override void Dispose(bool disposing) { if (disposing) { if (m_output != null) { try { long dirStart = m_output.Position; // LUCENENET specific: Renamed from getFilePointer() to match FileStream int fieldCount = fields.Count; int nonNullFieldCount = 0; for (int i = 0; i < fieldCount; i++) { FSTFieldWriter field = fields[i]; if (field.fst != null) { nonNullFieldCount++; } } m_output.WriteVInt32(nonNullFieldCount); for (int i = 0; i < fieldCount; i++) { FSTFieldWriter field = fields[i]; if (field.fst != null) { m_output.WriteVInt32(field.fieldInfo.Number); m_output.WriteVInt64(field.indexStart); } } WriteTrailer(dirStart); CodecUtil.WriteFooter(m_output); } finally { m_output.Dispose(); m_output = null; } } } }