2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
20 namespace Mono.Lucene.Net.Index
23 sealed class FormatPostingsTermsWriter:FormatPostingsTermsConsumer
26 internal FormatPostingsFieldsWriter parent;
27 internal FormatPostingsDocsWriter docsWriter;
28 internal TermInfosWriter termsOut;
29 internal FieldInfo fieldInfo;
31 internal FormatPostingsTermsWriter(SegmentWriteState state, FormatPostingsFieldsWriter parent):base()
34 termsOut = parent.termsOut;
35 docsWriter = new FormatPostingsDocsWriter(state, this);
38 internal void SetField(FieldInfo fieldInfo)
40 this.fieldInfo = fieldInfo;
41 docsWriter.SetField(fieldInfo);
44 internal char[] currentTerm;
45 internal int currentTermStart;
47 internal long freqStart;
48 internal long proxStart;
50 /// <summary>Adds a new term in this field </summary>
51 internal override FormatPostingsDocsConsumer AddTerm(char[] text, int start)
54 currentTermStart = start;
56 // TODO: this is abstraction violation -- ideally this
57 // terms writer is not so "invasive", looking for file
58 // pointers in its child consumers.
59 freqStart = docsWriter.out_Renamed.GetFilePointer();
60 if (docsWriter.posWriter.out_Renamed != null)
61 proxStart = docsWriter.posWriter.out_Renamed.GetFilePointer();
63 parent.skipListWriter.ResetSkip();
68 /// <summary>Called when we are done adding terms to this field </summary>
69 internal override void Finish()