pylucene 3.5.0-3
[pylucene.git] / lucene-java-3.5.0 / lucene / contrib / benchmark / src / java / org / apache / lucene / benchmark / byTask / tasks / CloseIndexTask.java
1 package org.apache.lucene.benchmark.byTask.tasks;
2
3 /**
4  * Licensed to the Apache Software Foundation (ASF) under one or more
5  * contributor license agreements.  See the NOTICE file distributed with
6  * this work for additional information regarding copyright ownership.
7  * The ASF licenses this file to You under the Apache License, Version 2.0
8  * (the "License"); you may not use this file except in compliance with
9  * the License.  You may obtain a copy of the License at
10  *
11  *     http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19
20 import java.io.IOException;
21 import java.io.PrintStream;
22
23 import org.apache.lucene.benchmark.byTask.PerfRunData;
24 import org.apache.lucene.index.IndexWriter;
25
26 /**
27  * Close index writer.
28  * <br>Other side effects: index writer object in perfRunData is nullified.
29  * <br>Takes optional param "doWait": if false, then close(false) is called.
30  */
31 public class CloseIndexTask extends PerfTask {
32
33   public CloseIndexTask(PerfRunData runData) {
34     super(runData);
35   }
36
37   boolean doWait = true;
38
39   @Override
40   public int doLogic() throws IOException {
41     IndexWriter iw = getRunData().getIndexWriter();
42     if (iw != null) {
43       // If infoStream was set to output to a file, close it.
44       PrintStream infoStream = iw.getInfoStream();
45       if (infoStream != null && infoStream != System.out
46           && infoStream != System.err) {
47         infoStream.close();
48       }
49       iw.close(doWait);
50       getRunData().setIndexWriter(null);
51     }
52     return 1;
53   }
54
55   @Override
56   public void setParams(String params) {
57     super.setParams(params);
58     doWait = Boolean.valueOf(params).booleanValue();
59   }
60
61   @Override
62   public boolean supportsParams() {
63     return true;
64   }
65 }