tm.getTrainMotionModel().getPathTraversedSinceLastSync() == null) || ((pathFromLastSync != null) && pathFromLastSync.equals(tm.getTrainMotionModel(). getPathTraversedSinceLastSync())))
tmm.getPathTraversedSinceLastSync() == null) || ((pathFromLastSync != null) && pathFromLastSync.equals (tmm.getPathTraversedSinceLastSync()) && tmm.getTimeOfLastSync().equals(timeOfLastSync)))
    public MoveStatus tryDoMove(World w, FreerailsPrincipal p) {	if (w.size(KEY.TRAINS, p) <= trainKey.index)	    return MoveStatus.moveFailed("Index out of bounds");	TrainModel tm = (TrainModel) w.get(KEY.TRAINS, trainKey.index, p);	if (tm == null)	    return MoveStatus.moveFailed("The train does not exist.");	if ((pathFromLastSync == null &&		    tm.getTrainMotionModel().getPathTraversedSinceLastSync() ==		    null) ||		((pathFromLastSync != null) &&		 pathFromLastSync.equals(tm.getTrainMotionModel().		    getPathTraversedSinceLastSync())))	    return MoveStatus.MOVE_OK;	return MoveStatus.MOVE_FAILED;    }