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.arcrepository; 025 026import dk.netarkivet.common.CommonSettings; 027import dk.netarkivet.common.utils.SettingsFactory; 028 029/** 030 * A factory for ArcRepositoryClients. 031 * <p> 032 * Implementation note: This implementation assumes that only one actual implementation class exists, pointed out by the 033 * setting settings.common.arcrepositoryClient.class, and merely gives three different view on that class. 034 */ 035public class ArcRepositoryClientFactory extends SettingsFactory<ArcRepositoryClient> { 036 037 /** 038 * Returns a new ArcRepositoryClient suitable for use by a harvester. 039 * 040 * @return An ArcRepositoryClient that implements the methods defined by HarvesterArcRepositoryClient. At end of 041 * use, close() should be called on this to release any resources claimed. 042 */ 043 public static HarvesterArcRepositoryClient getHarvesterInstance() { 044 return SettingsFactory.getInstance(CommonSettings.ARC_REPOSITORY_CLIENT); 045 } 046 047 /** 048 * Returns a new ArcRepositoryClient suitable for use by a viewer. 049 * 050 * @return An ArcRepositoryClient that implements the methods defined by ViewerArcRepositoryClient. At end of use, 051 * close() should be called on this to release any resources claimed. 052 */ 053 public static ViewerArcRepositoryClient getViewerInstance() { 054 return SettingsFactory.getInstance(CommonSettings.ARC_REPOSITORY_CLIENT); 055 } 056 057 /** 058 * Returns a new ArcRepositoryClient suitable for use in bit preservation. 059 * 060 * @return An ArcRepositoryClient that implements the methods defined by PreservationArcRepositoryClient. At end of 061 * use, close() should be called on this to release any resources claimed. 062 */ 063 public static PreservationArcRepositoryClient getPreservationInstance() { 064 return SettingsFactory.getInstance(CommonSettings.ARC_REPOSITORY_CLIENT); 065 } 066 067}