Index: xotcl/library/registry/Registry.xotcl =================================================================== diff -u -rf7894d9be99a8da3a04218abcdb9bd46b6d625c8 -rad8a63234e44a8788efede276e811051ab891fbe --- xotcl/library/registry/Registry.xotcl (.../Registry.xotcl) (revision f7894d9be99a8da3a04218abcdb9bd46b6d625c8) +++ xotcl/library/registry/Registry.xotcl (.../Registry.xotcl) (revision ad8a63234e44a8788efede276e811051ab891fbe) @@ -4,63 +4,70 @@ package require xotcl::rdf::triple package require xotcl::rdf::tripleRecreator package require xotcl::actiweb::agent +package require XOTcl -Class Registry -superclass Agent +namespace eval ::xotcl::registry::registry { + namespace import ::xotcl::* -Registry instproc init args { - next - my exportProcs register query queryProperty - RDFParser [self]::parser - TripleVisitor [self]::tripleVisitor -parser [self]::parser - [self]::tripleVisitor descriptionAsBag 0 - my array set services {} -} + Class Registry -superclass Agent -Registry instproc register {rdfScript} { - #my showCall - [[self]::tripleVisitor set parser] parse $rdfScript - [self]::tripleVisitor interpretNodeTree [self]::parser::topNode - [self]::tripleVisitor resetWithoutDB - foreach serviceTriple [[self]::tripleVisitor::db queryPredicate \ - "http://nestroy.wi-inf.uni-essen.de/schema/service#name"] { - set service [$serviceTriple object] - if {[info exists services($service)]} { - puts stderr "we have already such a service '$service'" - # hier koennte man ueberlegen, den service zu loeschen oder nicht - # zZT: loesche altes service + Registry instproc init args { + next + my exportProcs register query queryProperty + RDFParser [self]::parser + TripleVisitor [self]::tripleVisitor -parser [self]::parser + [self]::tripleVisitor descriptionAsBag 0 + my array set services {} } - puts stderr "REGISTRY: registering $service with [$serviceTriple subject]" - my set services($service) [$serviceTriple subject]; - } -} -Registry instproc query {service} { - my showCall - if {[info exists services($service)]} { - set s [my set services($service)] - return [[Place getInstance]::rdfCreator createFromTriples [[self]::tripleVisitor::db querySubject $s]] - } -} + Registry instproc register {rdfScript} { + #my showCall + [[self]::tripleVisitor set parser] parse $rdfScript + [self]::tripleVisitor interpretNodeTree [self]::parser::topNode + [self]::tripleVisitor resetWithoutDB + foreach serviceTriple [[self]::tripleVisitor::db queryPredicate \ + "http://nestroy.wi-inf.uni-essen.de/schema/service#name"] { + set service [$serviceTriple object] + if {[info exists services($service)]} { + puts stderr "we have already such a service '$service'" + # hier koennte man ueberlegen, den service zu loeschen oder nicht + # zZT: loesche altes service + } + puts stderr "REGISTRY: registering $service with [$serviceTriple subject]" + my set services($service) [$serviceTriple subject]; + } + } -Registry instproc queryProperty {args} { - # returns first service with matching properties - my showCall - foreach s [my array names services] { - set success 1 - foreach {att value} $args { - set t [[self]::tripleVisitor::db queryPredicateOnSubject $att [my set services($s)]] - if {$t == "" || [$t object] != $value} { - set success 0 - break - } + Registry instproc query {service} { + my showCall + if {[info exists services($service)]} { + set s [my set services($service)] + return [[Place getInstance]::rdfCreator createFromTriples [[self]::tripleVisitor::db querySubject $s]] + } } - if {$success} { - set r [my query $s] - return $r - } else { - return "" + + Registry instproc queryProperty {args} { + # returns first service with matching properties + my showCall + foreach s [my array names services] { + set success 1 + foreach {att value} $args { + set t [[self]::tripleVisitor::db queryPredicateOnSubject $att [my set services($s)]] + if {$t == "" || [$t object] != $value} { + set success 0 + break + } + } + if {$success} { + set r [my query $s] + return $r + } else { + return "" + } + } } - } + + namespace export Registry } - +namespace import ::xotcl::registry::registry::*