code: @Override
  	public void move(List<GeometryIndex> indices, List<List<Coordinate>> coordinates)
  			throws GeometryOperationFailedException {
  		if (indices == null || coordinates == null || indices.size() == 0 || coordinates.size() == 0) {
  			throw new GeometryOperationFailedException("Illegal arguments passed; nothing to move.");
  		}
  
  		Geometry geometry = service.getGeometry();
  		OperationSequence seq = null;
  		if (isOperationSequenceActive()) {
  			seq = current;
  		} else {
  			seq = new OperationSequence();
  			redoQueue.clear();
  		}
  		for (int i = 0; i < indices.size(); i++) {
  			if (indexService.getType(indices.get(i)) == GeometryIndexType.TYPE_VERTEX) {
  				GeometryIndexOperation op = new MoveVertexOperation(indexService, coordinates.get(i).get(0));
  				executeOperation(op, indices.get(i));
  				seq.addOperation(op);
  			} else {
  				throw new GeometryOperationFailedException("Can only move vertices. Other types not suported.");
  			}
  		}
  		if (!isOperationSequenceActive()) {
  			undoQueue.add(seq);
  		}
  		eventBus.fireEvent(new GeometryEditMoveEvent(geometry, indices));
  		if (!isOperationSequenceActive()) {
  			eventBus.fireEvent(new GeometryEditShapeChangedEvent(service.getGeometry()));
  		}
  	}
docs: ------------------------------------------------------------------------