def METHOD_NAME(self,
               verbose=False,
               restore_nonants=True):
    """Use xbar to set the nonants; round integers
    Args:
        verbose (boolean): controls debugging output
        restore_nonants (boolean): put back the nonants
    Returns:
        xhatobjective (float or None): the objective function
            or None if one could not be obtained.
    """
    def _vb(msg):
        if verbose and self.cylinder_rank == 0:
            print("  xhat_xbar: " + msg)
    obj = None
    sname = None
    _vb("Enter XhatXbar.xhat_tryit")
    _vb("   Solver options="+str(self.solver_options))
    # This might be an extension for a Xhat_Eval object or a PH object, so we will assume the worst
    phbase._Compute_Xbar(self.opt)
    self._fix_nonants_xhat() # (BTW: for all local scenarios)
    # NOTE: for APH we may need disable_pyomo_signal_handling
    self.opt.solve_loop(solver_options=self.solver_options,
                       #dis_W=True, dis_prox=True,
                       verbose=verbose,
                        tee=False)
    infeasP = self.opt.infeas_prob()
    if infeasP != 0.:
        # restoring does no harm
        # if this solution is infeasible
        self.opt._restore_nonants()
        return None
    else:
        if verbose and src_rank == self.cylinder_rank:
            print("   Feasible xhat found at xbar")
        obj = self.opt.Eobjective(verbose=verbose)
        if restore_nonants:
            self._restore_nonants()
    if obj is None:
        _vb("Infeasible")
    else:
        _vb("Feasible, returning " + str(obj))
    return obj