view rep/translator/Translator.java @ 325:be0831086e63

*** empty log message ***
author kono
date Sat, 11 Oct 2008 17:43:51 +0900
parents e235998427a6
children b1a6acf0b8a9
line wrap: on
line source

package rep.translator;

import java.util.LinkedList;

import rep.Editor;
import rep.Forwarder;
import rep.REPCommand;

public interface Translator {

	/*
	 * Interface で分離する意味が良くわからない。Application毎に
	 * Transltorを換えるつもりなのか?
	 */
	/**
	 * Translate command When the editor send REPCommand to remote editor.
	 * @param command which the editor want to send.
	 * @return translated command which should be sent by the editor.
	 */
	public REPCommand transSendCmd(REPCommand cmd);

	/**
	 * Inform translater about that the editor receive own command which it sent.
	 * but in this case, you can use also transReceiveCmd()
	 * @param command which the editor sent.
	 */
	public boolean catchOwnCommand(Editor editor);
	
	/**
	 * Translate Command cmd that was received from SeMa.
	 * @param cmd the command to be translated.
	 * @return translated command.
	 */
	public void transReceiveCmd(Forwarder nextEditor,REPCommand cmd);

	/**
	 * set the editor's id.
	 * @param editor's id.
	 */
	public void setEid(int _eid);

	boolean checkMergeConflict(REPCommand command);

	public LinkedList<REPCommand> getMergeAgain();

	public void startMerge(REPCommand cmd);

	public REPCommand prev();

	public boolean isMerging();

	public void endMerge();

	public void mergeAck();
}