  # -------------------------------------------------------------------------------------------------------------------------  #
  #  -----------------------------------------------------------------------------------------------------------------------   #
  #                                                                                                                            #
  #           File Name              :  doesFacetHaveXY.r                                                                      #
  #           Last Updated Funclist  :  19 Feb 2015,  1:05 PM (Thursday)                                                       #
  #                                                                                                                            #
  #           Author Name            :  Rick Saporta                                                                           #
  #           Author Email           :  RickSaporta@gmail.com                                                                  #
  #           Author URL             :  www.github.com/rsaporta                                                                #
  #                                                                                                                            #
  #           Packages Called        :  NA                                                                                     #
  #           Packages Used via NS   :  NA                                                                                     #
  #                                                                                                                            #
  #  -----------------------------------------------------------------------------------------------------------------------   #
  #                                                                                                                            #
  #   doesFacetHaveXY    ( facet_formula )                                                                                     #
  #                                                                                                                            #
  #                                                                                                                            #
  #                                                     <END FUNCS>                                                            #
  #  -----------------------------------------------------------------------------------------------------------------------   #
  # -------------------------------------------------------------------------------------------------------------------------  #

# doesFacetHaveXY.r

doesFacetHaveXY <- function(facet_formula) {
## returns a logical vector of length 2, where TRUE indicates that there is a facet for that axis
##  Any ambiguity returns FALSE
##  "."  returns FALSE

  ## default return is c(FALSE, FALSE)
  ret <- list(x=FALSE, y=FALSE)

  if (is.null(facet_formula))
    return(ret)
  if (is.character(facet_formula))
    facet_formula <- as.formula(facet_formula)

  formula.list <- as.list(facet_formula)
  if (length(formula.list) != 3 || formula.list[[1L]] != "~")
    return(ret)

  x <- as.character(formula.list[[3L]])
  y <- as.character(formula.list[[2L]])

  ## it is yes 
  ret[["x"]] <- length(x) && mnchar(x) && !(length(x) == 1 && x == ".")
  ret[["y"]] <- length(y) && mnchar(y) && !(length(y) == 1 && y == ".")

  return(ret)
}
