package games.strategy.engine.pbem;
import java.io.File;
import java.util.Vector;
import games.strategy.engine.data.GameData;
import games.strategy.engine.framework.startup.ui.editors.IBean;
/**
* An interface for classes that can post a turn summary, the summary may also include a save game if the
* implementing class supports this.
*/
public interface IWebPoster extends IBean {
/**
* Called when the turn summary should be posted.
*
* @return true if the post was successful
*/
boolean postTurnSummary(final GameData gameData, final String turnSummary, final String player, int round);
boolean getMailSaveGame();
void setMailSaveGame(boolean mail);
/**
* Called to add the save game to the summary, this should only be called if getIncludeSaveGame returns true.
*
* @param saveGame
* the save game file
*/
void addSaveGame(File saveGame, String fileName);
/**
* Create a clone of this object.
*
* @return the clone
*/
IWebPoster doClone();
void clearSensitiveInfo();
/**
* Get the display name.
*/
@Override
String getDisplayName();
/**
* Get the site id.
*
* @return the site id
*/
String getSiteId();
/**
* Get the host URL.
*/
String getHost();
Vector<String> getAllHosts();
String getGameName();
void setSiteId(String siteId);
void setGameName(String gameName);
/**
* Set the host name.
*/
void setHost(String host);
void setAllHosts(Vector<String> hosts);
void addToAllHosts(String host);
/**
* Opens a browser and go to the web site, identified by the site id.
*/
void viewSite();
/**
* Each poster provides a message that is displayed on the progress bar when testing the poster.
*
* @return the progress bar message
*/
String getTestMessage();
String getServerMessage();
}