001/*
002 * #%L
003 * Netarchivesuite - monitor
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.monitor.webinterface;
025
026import java.util.Locale;
027
028/**
029 * An interface that specifies the information available in our JMX log mbeans.
030 */
031public interface StatusEntry extends Comparable<StatusEntry> {
032    /**
033     * Get the (physical) location this status entry is from, e.g. EAST.
034     *
035     * @return the (physical) location this status entry is from, e.g. EAST
036     */
037    String getPhysicalLocation();
038
039    /**
040     * Get the name of the host (machine) this status entry is from.
041     *
042     * @return the name of the host (machine) this status entry is from.
043     */
044    String getMachineName();
045
046    /**
047     * Get the HTTP port used by the application this status entry is from. Used for HTTP and self-identification.
048     *
049     * @return the HTTP port that the application that this status entry is from
050     */
051    String getHTTPPort();
052
053    /**
054     * Get the name of the application that this status entry is from.
055     *
056     * @return the name of the application that this status entry is from.
057     */
058    String getApplicationName();
059
060    /**
061     * Get the instance id of the application that this status entry is from.
062     *
063     * @return the instance id of the application that this status entry is from.
064     */
065    String getApplicationInstanceID();
066
067    /**
068     * Get the priority of the harvest queue that this status entry is from.
069     *
070     * @return the priority of the harvest queue that this status entry is from.
071     */
072    String getHarvestPriority();
073
074    /**
075     * Get the replica id of the application that this status entry is represents.
076     *
077     * @return the replica id of the application that this status entry is represents.
078     */
079    String getArchiveReplicaName();
080
081    /**
082     * Get the index in the list of most recent log messages that this status entry is from.
083     *
084     * @return the index in the list of most recent log messages that this status entry is from.
085     */
086    String getIndex();
087
088    /**
089     * Get the actual message.
090     *
091     * @param l the current locale (only used to translate errormessages)
092     * @return the actual status message
093     */
094    String getLogMessage(Locale l);
095}