comparison BiodbConn.R @ 0:e66bb061af06 draft

planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit 3529b25417f8e1a5836474c9adec4b696d35099d-dirty
author prog
date Tue, 12 Jul 2016 12:02:37 -0400
parents
children 253d531a0193
comparison
equal deleted inserted replaced
-1:000000000000 0:e66bb061af06
1 if ( ! exists('BiodbConn')) { # Do not load again if already loaded
2
3 source(file.path('UrlRequestScheduler.R'), chdir = TRUE)
4 source('biodb-common.R')
5
6 #####################
7 # CLASS DECLARATION #
8 #####################
9
10 BiodbConn <- setRefClass("BiodbConn", fields = list(.scheduler = "UrlRequestScheduler"))
11
12 ###############
13 # CONSTRUCTOR #
14 ###############
15
16 BiodbConn$methods( initialize = function(useragent = NA_character_, scheduler = NULL, ...) {
17
18 # Check useragent
19 ! is.null(useragent) && ! is.na(useragent) || stop("You must specify a valid useragent.")
20
21 # Set scheduler
22 if (is.null(scheduler))
23 scheduler <- UrlRequestScheduler$new(n = 3)
24 inherits(scheduler, "UrlRequestScheduler") || stop("The scheduler instance must inherit from UrlRequestScheduler class.")
25 scheduler$setUserAgent(useragent) # set agent
26 .scheduler <<- scheduler
27
28 callSuper(...) # calls super-class initializer with remaining parameters
29 })
30
31 ######################
32 # HANDLES ENTRY TYPE #
33 ######################
34
35 BiodbConn$methods( handlesEntryType = function(type) {
36 return( ! is.null(.self$getEntryContentType(type)))
37 })
38
39 ##########################
40 # GET ENTRY CONTENT TYPE #
41 ##########################
42
43 BiodbConn$methods( getEntryContentType = function(type) {
44 stop("Method getEntryContentType() is not implemented in concrete class.")
45 })
46
47 #############
48 # GET ENTRY #
49 #############
50
51 BiodbConn$methods( getEntry = function(type, id, drop = TRUE) {
52 content <- .self$getEntryContent(type, id)
53 return(.self$createEntry(type, content, drop = drop))
54 })
55
56 #####################
57 # GET ENTRY CONTENT #
58 #####################
59
60 # Download entry content from the public database.
61 # type The entry type.
62 # id The ID of the enttry to get.
63 # RETURN An entry content downloaded from database.
64 BiodbConn$methods( getEntryContent = function(type, id) {
65 stop("Method getCompound() is not implemented in concrete class.")
66 })
67
68 #############################
69 # CREATE ENTRY FROM CONTENT #
70 #############################
71
72 # Creates a Compound instance from file content.
73 # content A file content, downloaded from the public database.
74 # RETURN A compound instance.
75 BiodbConn$methods( createEntry = function(type, content, drop = TRUE) {
76 stop("Method createEntry() is not implemented in concrete class.")
77 })
78 }