public Element handle(FreeColServer server, Player player, Connection connection) {
        ServerPlayer serverPlayer = server.getPlayer(connection);

        if (nationName == null || nationName.length() == 0
            || countryName == null || countryName.length() == 0) {
            return DOMMessage.clientError("Empty nation or country name.");
        }
        Event event = player.getSpecification().getEvent("model.event.declareIndependence");
        for (Limit limit : event.getLimits()) {
            if (!limit.evaluate(player)) {
                return DOMMessage.clientError(limit.getDescriptionKey() + " "
                                           + Integer.toString(limit.getRightHandSide().getValue()));
            }
        }
        if (player.getPlayerType() != PlayerType.COLONIAL) {
            return DOMMessage.clientError("Only colonial players can declare independence.");
        }

        // Declare.
        return server.getInGameController().
            declareIndependence(serverPlayer, nationName, countryName);
    }