001/* 002 * #%L 003 * Netarchivesuite - harvester 004 * %% 005 * Copyright (C) 2005 - 2018 The Royal Danish 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 */ 023package dk.netarkivet.harvester.harvesting; 024 025import dk.netarkivet.common.utils.Settings; 026import dk.netarkivet.harvester.HarvesterSettings; 027import dk.netarkivet.harvester.datamodel.Job; 028 029/** 030 * Implements another way of prefixing archive files in Netarchivesuite. I.e. collectionName-jobid-harvestid 031 */ 032public class CollectionPrefixNamingConvention implements ArchiveFileNaming { 033 034 /** The default place in classpath where the settings file can be found. */ 035 private static String defaultSettingsClasspath = "dk/netarkivet/harvester/harvesting/" 036 + "CollectionPrefixNamingConventionSettings.xml"; 037 038 /* 039 * The static initialiser is called when the class is loaded. It will add default values for all settings defined in 040 * this class, by loading them from a settings.xml file in classpath. 041 */ 042 static { 043 Settings.addDefaultClasspathSettings(defaultSettingsClasspath); 044 } 045 046 /** The name of the collection embedded in the names. */ 047 private static String CollectionName = Settings.get(HarvesterSettings.HERITRIX_PREFIX_COLLECTION_NAME); 048 049 public CollectionPrefixNamingConvention() { 050 } 051 052 @Override 053 public String getPrefix(Job theJob) { 054 return CollectionName + "-" + theJob.getJobID() + "-" + theJob.getOrigHarvestDefinitionID(); 055 } 056 057}