01: /**
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
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.
16: */package org.apache.solr.search;
17:
18: import java.io.IOException;
19:
20: /**
21: * Implementations of <code>CacheRegenerator</code> are used in autowarming to populate a new cache
22: * based on an old cache. <code>regenerateItem</code> is called for each item that should be inserted into the new cache.
23: * <p>
24: * Implementations should have a noarg constructor and be thread safe (a single instance will be
25: * used for all cache autowarmings).
26: *
27: * @author yonik
28: * @version $Id: CacheRegenerator.java 472574 2006-11-08 18:25:52Z yonik $
29: */
30: public interface CacheRegenerator {
31: /**
32: * Regenerate an old cache item and insert it into <code>newCache</code>
33: *
34: * @param newSearcher the new searcher who's caches are being autowarmed
35: * @param newCache where regenerated cache items should be stored. the target of the autowarming
36: * @param oldCache the old cache being used as a source for autowarming
37: * @param oldKey the key of the old cache item to regenerate in the new cache
38: * @param oldVal the old value of the cache item
39: * @return true to continue with autowarming, false to stop
40: */
41: public boolean regenerateItem(SolrIndexSearcher newSearcher,
42: SolrCache newCache, SolrCache oldCache, Object oldKey,
43: Object oldVal) throws IOException;
44: }
|