summaryrefslogtreecommitdiffstats
path: root/acf/model/init.lua
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-06-28 07:00:01 +0300
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-06-28 13:40:05 +0300
commit00166624a85afdbe24722c7e2e3320316cfbae93 (patch)
treef9484b7eb7c2c889c048b318a402d19a7e8ac5ff /acf/model/init.lua
parent37396d77b3e911b1c5351ab56ff3ec5797e2f62d (diff)
downloadaconf-00166624a85afdbe24722c7e2e3320316cfbae93.tar.bz2
aconf-00166624a85afdbe24722c7e2e3320316cfbae93.tar.xz
prevent deletion of objects referred to by other objects
Diffstat (limited to 'acf/model/init.lua')
-rw-r--r--acf/model/init.lua8
1 files changed, 8 insertions, 0 deletions
diff --git a/acf/model/init.lua b/acf/model/init.lua
index a53cc0d..e1a4dd9 100644
--- a/acf/model/init.lua
+++ b/acf/model/init.lua
@@ -114,6 +114,14 @@ function Reference:_validate(context, value)
return value
end
+function Reference:deleted(context, addr)
+ local target = self:load(context)
+ if target and node.addr(target) == addr then
+ -- TODO raise error for the target object
+ raise(context.path, 'Refers to '..addr)
+ end
+end
+
Model = fld.Model