view tolst.R @ 3:f61ce21ed17c draft

planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit 476a081c0da66822f4e77070f5ce59d9f14511f4-dirty
author prog
date Thu, 02 Mar 2017 11:07:56 -0500
parents e66bb061af06
children
line wrap: on
line source

##################
# OBJECT TO LIST #
##################

.object_to_list <- function(obj) {

	if(is.null(obj))
		return(NULL)

	field_names <- names(obj$getRefClass()$fields())
	l <- c()
	lapply( field_names, function(x) { l<<-c(l,list(obj$field(x))) } )
	names(l) <- field_names
	return(l)
}

###########
# TO LIST #
###########

tolst <- function(v) {

	switch(typeof(v),
	       S4 = lst <- .object_to_list(v),
	       list = lst <- v,
	       stop("Unknown type '", typeof(v), "'.")
	      )

	return(lst)
}