001/* 002 * #%L 003 * Netarchivesuite - common 004 * %% 005 * Copyright (C) 2005 - 2014 The Royal Danish Library, the Danish State and University Library, 006 * the National Library of France and the Austrian National Library. 007 * %% 008 * This program is free software: you can redistribute it and/or modify 009 * it under the terms of the GNU Lesser General Public License as 010 * published by the Free Software Foundation, either version 2.1 of the 011 * License, or (at your option) any later version. 012 * 013 * This program is distributed in the hope that it will be useful, 014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 016 * GNU General Lesser Public License for more details. 017 * 018 * You should have received a copy of the GNU General Lesser Public 019 * License along with this program. If not, see 020 * <http://www.gnu.org/licenses/lgpl-2.1.html>. 021 * #L% 022 */ 023 024package dk.netarkivet.common.distribute.indexserver; 025 026import dk.netarkivet.common.CommonSettings; 027import dk.netarkivet.common.utils.SettingsFactory; 028 029/** 030 * A factory for IndexClients. 031 * <p> 032 * Implementation note: This currently assumes that only one implementation exists, pointed out by the setting 033 * settings.common.indexClient.class, but that the cache variant in question is selected by a parameter to its 034 * getInstance method. 035 */ 036public class IndexClientFactory extends SettingsFactory<JobIndexCache> { 037 038 /** 039 * Get a cache of CDX files for a set of jobs. 040 * 041 * @return A cache implementation for CDX files. 042 */ 043 public static JobIndexCache getCDXInstance() { 044 return SettingsFactory.getInstance(CommonSettings.INDEXSERVER_CLIENT, RequestType.CDX); 045 } 046 047 /** 048 * Get a cache of Lucene index files for a set of jobs. This index is intended for deduplication and may contain a 049 * subset of the actual entries for the given jobs in the archive to preserve space and time. 050 * 051 * @return A cache implementation for Lucene index files for deduplication. 052 */ 053 public static JobIndexCache getDedupCrawllogInstance() { 054 return SettingsFactory.getInstance(CommonSettings.INDEXSERVER_CLIENT, RequestType.DEDUP_CRAWL_LOG); 055 } 056 057 /** 058 * Get a cache of Lucene index files for a set of jobs. This index is intended for a viewer, and contains entries 059 * for all the records for the given job. 060 * 061 * @return A cache implementation for Lucene index files for viewing. 062 */ 063 public static JobIndexCache getFullCrawllogInstance() { 064 return SettingsFactory.getInstance(CommonSettings.INDEXSERVER_CLIENT, RequestType.FULL_CRAWL_LOG); 065 } 066 067}