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.distribute; 024 025import dk.netarkivet.common.distribute.Channels; 026import dk.netarkivet.harvester.distribute.HarvesterMessage; 027import dk.netarkivet.harvester.distribute.HarvesterMessageVisitor; 028import dk.netarkivet.harvester.harvesting.frontier.FrontierReportFilter; 029import dk.netarkivet.harvester.harvesting.frontier.InMemoryFrontierReport; 030import dk.netarkivet.harvester.harvesting.monitor.HarvestMonitor; 031 032/** 033 * Sends a frontier report to the {@link HarvestMonitor}. 034 */ 035@SuppressWarnings({"serial"}) 036public class FrontierReportMessage extends HarvesterMessage { 037 038 /** The id of the filter that generated this report. */ 039 private String filterId; 040 041 /** The report. */ 042 private InMemoryFrontierReport report; 043 044 /** The ID of the job, this message represents. */ 045 private Long jobID; 046 047 /** 048 * Builds a frontier report wrapper message. 049 * 050 * @param filter the filter that generated the report. 051 * @param report the report to wrap. 052 */ 053 public FrontierReportMessage(FrontierReportFilter filter, InMemoryFrontierReport report, Long jobID) { 054 super(HarvestMonitor.HARVEST_MONITOR_CHANNEL_ID, Channels.getError()); 055 this.filterId = filter.getFilterId(); 056 this.report = report; 057 this.jobID = jobID; 058 } 059 060 @Override 061 public void accept(HarvesterMessageVisitor v) { 062 v.visit(this); 063 } 064 065 /** 066 * @return the filter id 067 */ 068 public String getFilterId() { 069 return filterId; 070 } 071 072 /** 073 * @return the report 074 */ 075 public InMemoryFrontierReport getReport() { 076 return report; 077 } 078 079 public Long getJobID() { 080 return jobID; 081 } 082 083}