/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.monitoring.common.spi;
import java.util.Collection;
import java.util.List;
/**
* An interface for services that offer monitoring information in form of text lines. Each contributor may offer multiple "topics", which
* can be enabled or disabled by the user.
*
* @author Robert Mischke
*/
public interface PeriodicMonitoringDataContributor {
/**
* @return the available topic IDs (as map keys), with a short description (as map values)
*/
Collection<String> getTopicIds();
/**
* @param topicId a topic id
* @return a short description for the given monitoring topic
*/
String getTopicDescription(String topicId);
/**
* Generates the monitoring output for the given topic, and appends it to the provided list. A contributor MUST NOT edit or remove any
* existing entries in the {@link List}.
*
* @param topicId the topic to generate output for
* @param collection the list to append the output lines to
*/
void generateOutput(String topicId, List<String> collection);
}