/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.component.workflow.execution.api;
import java.util.Collection;
import de.rcenvironment.core.component.execution.api.ConsoleRow;
import de.rcenvironment.core.component.workflow.execution.internal.ConsoleRowModelServiceImpl;
/**
* Represents a (possibly filtered) state of the ConsoleModel at a given time. Used to communicate
* an immutable model state to the view in a single call.
*
* @author Robert Mischke
*/
public interface ConsoleModelSnapshot {
/**
* Gets the sequence id of the {@link ConsoleRowModelServiceImpl} this snapshot was created at. Used for
* efficient polling.
* @return Returns the sequenceId.
*/
int getSequenceId();
/**
* @return true if the filtered console row list has changed
*/
boolean hasFilteredRowListChanged();
/**
* Get the current list of filtered {@link ConsoleRow}s.
* @return the contained {@link ConsoleRow}s; only set if {@link #hasFilteredRowListChanged()}
* is true; otherwise null.
*/
Collection<ConsoleRow> getFilteredRows();
/**
* @return true if the workflow list has potentially changed
*/
boolean hasWorkflowListChanged();
/**
* @return the current workflow list; for performance, only set if #hasWorkflowListChanged is
* true; otherwise null
*/
Collection<String> getWorkflowList();
/**
* @return true if the component list has potentially changed
*/
boolean hasComponentListChanged();
/**
* @return the current component list; for performance, only set if
* {@link #hasComponentListChanged()} is true; otherwise null
*/
Collection<String> getComponentList();
}