aboutsummaryrefslogtreecommitdiff
path: root/module/calp/webdav/resource/virtual.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/calp/webdav/resource/virtual.scm')
-rw-r--r--module/calp/webdav/resource/virtual.scm22
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>) _)