R/sql_joined_tables.R

#' @export
SQLJoinedTables <- R6::R6Class(
  public = list(
    initialize = function(tables = list(), join_conditions = data.frame()){},
    sql_snippet = function(){
      return(privte$sql_snippet_)
    }
  ),
  active = list(
    tables = function(tbls){
      if (missing(tbls)){
        return(private$tables_)
      }else{
        private$set_tables_(tbls)
      }
    },
    join_conditions = function(jcs){
      if (missing(jcs)){
        return(private$join_conditions_)
      }else{
        private$set_join_conditions_(jcs)
      }
    }
  ),
  private = list(
    tables_ = list(),
    join_conditions_ = data.frame(),
    sql_snippet_ = NA,
    set_tables_ = function(tbls){
      # TO DO add some assertive checks
      private$tables_ <- tbls
    },
    set_join_conditions_ = function(jcs){
      # TO DO add some assertive checks
      # Make sure the join conditions make sense
      private$join_conditions_ <- jcs
    }
  )
)
EntirelyDS/sqlmapr documentation built on May 6, 2019, 3:48 p.m.