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