public String toString() {
		if (this.mType == MoveType.MOVE_WW.getInternalValue()) {
			return "WW";
		} // End if
		if (this.mType == MoveType.MOVE_RW.getInternalValue()) {
			return "RW";
		} // End if
		if (this.mType == MoveType.MOVE_DRAW.getInternalValue()) {
			return "DRAW";
		} // End if
		if (this.mType == MoveType.MOVE_BOG.getInternalValue()) {
			return "BOG";
		} // End if
		if (this.isNull()) {
			return "NULL";
		} // End if

		String lStream = new String();
		String delimiter;
		
		if (this.mType >= MoveType.MOVE_JUMP.getInternalValue()) {
			delimiter = "x";
		} else if (this.mType == MoveType.MOVE_NORMAL.getInternalValue()) {
			delimiter = "-";
		} else {
			//Player generated move
			delimiter = "+";
		}

		assert (this.mData.size() > 0);

		// Concatenate all the cell numbers
		lStream = lStream + this.mData.elementAt(0);

		for (int i = 1; i < this.mData.size(); i++) {
			lStream = lStream + delimiter + this.mData.elementAt(i);
		} // End for

		return lStream;
	}