package org.dcache.webadmin.model.dataaccess.communication;
import java.io.Serializable;
import dmg.cells.nucleus.CellPath;
import org.dcache.webadmin.model.dataaccess.communication.CellMessageGenerator.CellMessageRequest;
/**
* Generates messages to be send and acts as a container for the requests generated.
* So that they can easily retrieved via an iterator.
* @author jans
*/
public interface CellMessageGenerator<M extends Serializable> extends Iterable<CellMessageRequest<M>> {
int getNumberOfMessages();
interface CellMessageRequest<M> {
M getPayload();
Class<M> getPayloadType();
boolean isSuccessful();
void setSuccessful(boolean successful);
CellPath getDestination();
void setAnswer(Serializable answer);
M getAnswer();
}
}