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 /// <summary> This {@link IndexDeletionPolicy} implementation that
24 /// keeps only the most recent commit and immediately removes
25 /// all prior commits after a new commit is done. This is
26 /// the default deletion policy.
29 public sealed class KeepOnlyLastCommitDeletionPolicy : IndexDeletionPolicy
32 /// <summary> Deletes all commits except the most recent one.</summary>
33 public void OnInit(System.Collections.IList commits)
35 // Note that commits.size() should normally be 1:
39 /// <summary> Deletes all commits except the most recent one.</summary>
40 public void OnCommit(System.Collections.IList commits)
42 // Note that commits.size() should normally be 2 (if not
43 // called by onInit above):
44 int size = commits.Count;
45 for (int i = 0; i < size - 1; i++)
47 ((IndexCommit) commits[i]).Delete();