class InfoDelegator extends BaseDelegator implements IInfoDelegator {

    @Override
    public IServerInfo getServerInfo()
            throws ConnectionException, RequestException, AccessException {
        ServerInfo serverInfo = new ServerInfo();
        List<Map<String, Object>> resultMaps = execMapCmdList(INFO, new String[0], null);

        if (nonNull(resultMaps)) {
            List<Map<String, Object>> validMaps = new ArrayList<>();
            for (int i = 0; i < resultMaps.size(); i++) {
                Map<String, Object> map = resultMaps.get(i);
                // p4ic4idea: use IServerMessage
                ResultMapParser.handleErrors(ResultMapParser.toServerMessage(map));
                validMaps.add(map);
            }
            serverInfo = new ServerInfo(validMaps);
        }
        return serverInfo;
    }

    public  InfoDelegator(final IOptionsServer server);

}