class RouterDeploymentDefinition {

    protected int getNumberOfRoutersToDeploy() {
        // TODO Are we sure this makes sense? Somebody said 5 was too many?
        if (routers.size() >= LIMIT_NUMBER_OF_ROUTERS) {
            logger.error("Too many redundant routers!");
        }

        // If old network is redundant but new is single router, then
        // routers.size() = 2 but routerCount = 1
        int routersExpected = 1;
        if (isRedundant()) {
            routersExpected = 2;
        }
        return routersExpected < routers.size() ? 0 : routersExpected - routers.size();
    }

    protected  RouterDeploymentDefinition(final Network guestNetwork, final DeployDestination dest,
                                         final Account owner, final Map<Param, Object> params);

}