class DefaultAdminHandler implements AdminHandler {
    protected PermissionChecker permissionChecker;
    protected ConcurrentHashMap<String, AdminCommandHandler> routeHandlers = new ConcurrentHashMap<>();

    public DefaultAdminHandler(){
        this(AdminUtil.getDefaultPermissionChecker());
    }

    public DefaultAdminHandler(PermissionChecker permissionChecker) {
        if (permissionChecker == null) {
            throw new MotanFrameworkException("permissionChecker can not be null");
        }
        this.permissionChecker = permissionChecker;
    }

    @Override
    public Response handle(Request request) {
        boolean pass = permissionChecker.check(request);
        if (!pass) {
            return AdminUtil.notAllowed(request);
        }
        AdminCommandHandler handler = routeHandlers.get(request.getMethodName());
        if (handler == null) {
            return AdminUtil.unknownCommand(request);
        }
        try {
            return handler.handle(request);
        } catch (MotanAbstractException mae){
            return AdminUtil.buildErrorResponse(request, mae.getOriginMessage());
        } catch (Throwable e) {
            return AdminUtil.buildErrorResponse(request, e.getMessage());
        }
    }

    @Override
    public void addCommandHandler(AdminCommandHandler adminCommandHandler, boolean override) {<FILL_FUNCTION_BODY>}

    @Override
    public PermissionChecker updatePermissionChecker(PermissionChecker permissionChecker) {
        if (permissionChecker == null) {
            throw new MotanFrameworkException("admin permission checker is null");
        }
        PermissionChecker old = this.permissionChecker;
        this.permissionChecker = permissionChecker;
        return old;
    }

    public Set<String> getCommandSet(){
        return routeHandlers.keySet();
    }
}

        String[] commands = adminCommandHandler.getCommandName();
        for (String c : commands) {
            if (StringUtils.isNotBlank(c)) {
                c = c.trim();
                if (override) {
                    routeHandlers.put(c, adminCommandHandler);
                } else {
                    routeHandlers.putIfAbsent(c, adminCommandHandler);
                }
            }
        }
    
<no_super_class>