/** * Moves methods (as opposite to {@link #makeMethodsAbstract(java.util.Collection, * com.jetbrains.python.psi.PyClass...)}) * * @param from source * @param methodsToMove what to move * @param to where * @return newly added methods */ private static List<PyElement> moveMethods( final PyClass from, final Collection<PyFunction> methodsToMove, final PyClass... to) { final List<PyElement> result = new ArrayList<PyElement>(); for (final PyClass destClass : to) { // We move copies here because there may be several destinations final List<PyFunction> copies = new ArrayList<PyFunction>(methodsToMove.size()); for (final PyFunction element : methodsToMove) { final PyFunction newMethod = (PyFunction) element.copy(); copies.add(newMethod); } result.addAll(PyClassRefactoringUtil.copyMethods(copies, destClass)); } deleteElements(methodsToMove); PyClassRefactoringUtil.insertPassIfNeeded(from); return result; }