code: @Override
      public void move(final double dx, final double dy, final boolean midPointsOnly, final boolean moveLinePoints)
      {
          final IControlHandleList handles = m_connector.getPointHandles();
  
          int start = 0;
  
          int end = handles.size();
  
          if (midPointsOnly)
          {
              if (m_connector.getHeadConnection().getMagnet() != null)
              {
                  start++;
              }
              if (m_connector.getTailConnection().getMagnet() != null)
              {
                  end--;
              }
          }
          final Point2DArray points = m_connector.getLine().getPoint2DArray();
  
          for (int i = start, j = (start == 0) ? start : 2; i < end; i++, j += 2)
          {
              if (moveLinePoints)
              {
                  final Point2D p = points.get(i);
  
                  p.setX(m_startPoints.get(j) + dx);
  
                  p.setY(m_startPoints.get(j + 1) + dy);
              }
              final IControlHandle h = handles.getHandle(i);
  
              final IPrimitive<?> prim = h.getControl();
  
              prim.setX(m_startPoints.get(j) + dx);
  
              prim.setY(m_startPoints.get(j + 1) + dy);
          }
          if (moveLinePoints)
          {
              m_connector.getLine().refresh();
          }
          m_wiresManager.getLayer().getLayer().batch();
      }
docs: See class javadocs to explain why we have these booleans