@Override
	public void moveChild(String name, int index) throws NotFoundException {
		lock.acquire();
		try {
			checkDeleted();
			int currentIndex = 0;
			boolean foundName = false;
			Group group = null;

			// TODO: this could be slow and may need monitor
			List<DBRecord> list = getParentChildRecords();
			for (int i = 0; i < list.size(); i++) {
				DBRecord rec = list.get(i);
				long childID = rec.getLongValue(ParentChildDBAdapter.CHILD_ID_COL);
				String childName = null;
				DBRecord childRec = null;
				if (childID < 0) {
					childRec = fragmentAdapter.getFragmentRecord(-childID);
					childName = childRec.getString(FragmentDBAdapter.FRAGMENT_NAME_COL);
				}
				else {
					childRec = moduleAdapter.getModuleRecord(childID);
					childName = childRec.getString(ModuleDBAdapter.MODULE_NAME_COL);
				}
				if (childName.equals(name)) {
					foundName = true;
					currentIndex = i;
					if (childID < 0) {
						group = moduleMgr.getFragmentDB(childRec);
					}
					else {
						group = moduleMgr.getModuleDB(childRec);
					}
				}
			}
			if (!foundName) {
				throw new NotFoundException(name + " is not a child of " + getName());
			}
			DBRecord pcRec = list.remove(currentIndex);
			list.add(index, pcRec);
			updateChildOrder(list);

			moduleMgr.childReordered(this, group);
		}
		catch (IOException e) {
			moduleMgr.dbError(e);
		}
		finally {
			lock.release();
		}
	}
Constructor
@param moduleMgr module manager
@param cache ModuleDB cache
@param record database record for this module
@throws IOException if database IO error occurs
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/module/ModuleDB.java