Mercurial > repos > prog > lcmsmatching
annotate BiodbObject.R @ 2:20d69a062da3 draft
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
| author | prog | 
|---|---|
| date | Thu, 02 Mar 2017 08:55:00 -0500 | 
| parents | |
| children | 
| rev | line source | 
|---|---|
| 2 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 1 ########################## | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 2 # CLASS DECLARATION {{{1 # | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 3 ########################## | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 4 | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 5 BiodbObject <- methods::setRefClass("BiodbObject", fields = list( .observers = "ANY" )) | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 6 | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 7 ######################## | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 8 # ABSTRACT METHOD {{{1 # | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 9 ######################## | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 10 | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 11 BiodbObject$methods( .abstract.method = function() { | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 12 | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 13 class <- class(.self) | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 14 method <- sys.call(length(sys.calls()) - 1) | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 15 method <- sub('^[^$]*\\$([^(]*)\\(.*$', '\\1()', method) | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 16 | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 17 stop(paste("Method", method, "is not implemented in", class, "class.")) | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 18 }) | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 19 | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 20 ###################### | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 21 # ADD OBSERVERS {{{1 # | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 22 ###################### | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 23 | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 24 BiodbObject$methods( addObservers = function(obs) { | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 25 | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 26 # Check types of observers | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 27 if ( ( ! is.list(obs) && ! inherits(obs, "BiodbObserver")) || (is.list(obs) && any( ! vapply(obs, function(o) inherits(o, "BiodbObserver"), FUN.VALUE = TRUE)))) | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 28 stop("Observers must inherit from BiodbObserver class.") | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 29 | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 30 # Add observers to current list | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 31 .observers <<- if (is.null(.self$.observers)) c(obs) else c(.self$.observers, obs) | 
| 
20d69a062da3
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
 prog parents: diff
changeset | 32 }) | 
