diff options
Diffstat (limited to 'module/calp/webdav/resource/virtual.scm')
-rw-r--r-- | module/calp/webdav/resource/virtual.scm | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/module/calp/webdav/resource/virtual.scm b/module/calp/webdav/resource/virtual.scm index 42ffc123..047336c5 100644 --- a/module/calp/webdav/resource/virtual.scm +++ b/module/calp/webdav/resource/virtual.scm @@ -3,6 +3,7 @@ :use-module (datetime) :use-module (rnrs bytevectors) :use-module (hnh util) + :use-module (hnh util type) :use-module (sxml namespaced) :use-module (sxml namespaced util) :use-module (calp webdav resource) @@ -26,6 +27,11 @@ init-keyword: creation-time: getter: creation-time)) +(define-method (initialize (self <virtual-resource>) args) + (next-method) + (typecheck (content* self) bytevector? "<virtual-resource>.content*") + (typecheck (creation-time self) datetime? "<virtual-resource>.creation-time")) + (define (virtual-resource? x) (is-a? x <virtual-resource>)) @@ -38,7 +44,7 @@ (define-method (live-properties (self <virtual-resource>)) (append (next-method) - (list (cons (xml-element-hash-key (xml virtual-ns 'isvirtual)) + (list (cons ((xml virtual-ns 'isvirtual)) (make-live-property isvirtual set-isvirtual!))))) (define-method (content (self <virtual-resource>)) @@ -50,22 +56,22 @@ (define-method (creationdate (self <virtual-resource>)) (propstat 200 (list - (list (xml webdav 'creationdate) - (-> (creation-time self) - (datetime->string "~Y-~m-~dT~H:~M:~SZ")))))) + ((xml webdav 'creationdate) + (-> (creation-time self) + (datetime->string "~Y-~m-~dT~H:~M:~SZ")))))) (define-method (getcontenttype (self <resource>)) (propstat 200 (list - (list (xml webdav 'getcontenttype) - "application/binary")))) + ((xml webdav 'getcontenttype) + "application/binary")))) (define-method (isvirtual (self <virtual-resource>)) (propstat 200 (list - (list (xml virtual-ns 'isvirtual) - "true")))) + ((xml virtual-ns 'isvirtual) + "true")))) (define-method (set-isvirtual! (self <virtual-resource>) _) |