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 DocFieldConsumersPerThread:DocFieldConsumerPerThread
26 internal DocFieldConsumerPerThread one;
27 internal DocFieldConsumerPerThread two;
28 internal DocFieldConsumers parent;
29 internal DocumentsWriter.DocState docState;
31 public DocFieldConsumersPerThread(DocFieldProcessorPerThread docFieldProcessorPerThread, DocFieldConsumers parent, DocFieldConsumerPerThread one, DocFieldConsumerPerThread two)
36 docState = docFieldProcessorPerThread.docState;
39 public override void StartDocument()
45 public override void Abort()
57 public override DocumentsWriter.DocWriter FinishDocument()
59 DocumentsWriter.DocWriter oneDoc = one.FinishDocument();
60 DocumentsWriter.DocWriter twoDoc = two.FinishDocument();
63 else if (twoDoc == null)
67 DocFieldConsumers.PerDoc both = parent.GetPerDoc();
68 both.docID = docState.docID;
69 System.Diagnostics.Debug.Assert(oneDoc.docID == docState.docID);
70 System.Diagnostics.Debug.Assert(twoDoc.docID == docState.docID);
77 public override DocFieldConsumerPerField AddField(FieldInfo fi)
79 return new DocFieldConsumersPerField(this, one.AddField(fi), two.AddField(fi));