throws BadLocationException;
throws BadLocationException { int ret = pos; switch (d) { case WEST: ret = pos - 1; break; case EAST: ret = pos + 1; break; case NORTH:  break; case SOUTH:  break; default: throw new IllegalArgumentException("Illegal value for d"); } return ret; }
  public abstract int getNextVisualPositionFrom(JTextComponent c, int pos,                                                Position.Bias b, int d,                                                Position.Bias[] biasRet)    throws BadLocationException;