[open-ils-commits] r8971 - trunk/Open-ILS/src/perlmods/OpenILS/Application

svn at svn.open-ils.org svn at svn.open-ils.org
Tue Mar 11 13:54:48 EDT 2008


Author: erickson
Date: 2008-03-11 13:21:35 -0400 (Tue, 11 Mar 2008)
New Revision: 8971

Modified:
   trunk/Open-ILS/src/perlmods/OpenILS/Application/PermaCrud.pm
Log:
added the permacrud namespace, some log lines for debugging

Modified: trunk/Open-ILS/src/perlmods/OpenILS/Application/PermaCrud.pm
===================================================================
--- trunk/Open-ILS/src/perlmods/OpenILS/Application/PermaCrud.pm	2008-03-11 16:49:55 UTC (rev 8970)
+++ trunk/Open-ILS/src/perlmods/OpenILS/Application/PermaCrud.pm	2008-03-11 17:21:35 UTC (rev 8971)
@@ -25,6 +25,7 @@
     oils_obj    => {ns => 'http://open-ils.org/spec/opensrf/IDL/objects/v1'},
     idl         => {ns => 'http://opensrf.org/spec/IDL/base/v1'},
     reporter    => {ns => 'http://open-ils.org/spec/opensrf/IDL/reporter/v1'},
+    perm        => {ns => 'http://open-ils.org/spec/opensrf/IDL/permacrud/v1'},
 );
 
 
@@ -48,6 +49,7 @@
     $log->debug( 'IDL XML file loaded' );
 
     generate_methods();
+
 }
 sub child_init {}
 
@@ -172,30 +174,37 @@
 }
 
 sub generate_methods {
-    for my $class_node ( $xpc->findnodes( '//idl:class[perm:permacrud]', $idl->documentElement ) ) {
-        my $hint = $class_node->getAttribute('id');
-    
-        for my $action_node ( $xpc->findnodes( "perm:permacrud/perm:actions/perm:*", $class_node ) ) {
-            my $method = $action_node->localname =~ s/^.+:(.+)$/$1/o;
-    
-            __PACKAGE__->register_method(
-                method          => 'CRUD_action_object_permcheck',
-                api_name        => 'open-ils.permacrud.' . $method . '.' . $hint,
-                authoritative   => 1,
-                class_hint      => $hint,
-            );
-    
-            if ($method eq 'retrieve') {
+    try {
+        for my $class_node ( $xpc->findnodes( '//idl:class[perm:permacrud]', $idl->documentElement ) ) {
+            my $hint = $class_node->getAttribute('id');
+            $log->debug("permacrud class_node $hint");
+        
+            for my $action_node ( $xpc->findnodes( "perm:permacrud/perm:actions/perm:*", $class_node ) ) {
+                (my $method = $action_node->localname) =~ s/^.+:(.+)$/$1/o;
+                $log->internal("permacrud method = $method");
+        
                 __PACKAGE__->register_method(
-                    method      => 'search_permcheck',
-                    api_name    => 'open-ils.permacrud.search.' . $hint,
-                    class_hint  => $hint,
-                    retriever   => 'open-ils.permacrud.retrieve.' . $hint,
-                    stream      => 1
+                    method          => 'CRUD_action_object_permcheck',
+                    api_name        => 'open-ils.permacrud.' . $method . '.' . $hint,
+                    authoritative   => 1,
+                    class_hint      => $hint,
                 );
+        
+                if ($method eq 'retrieve') {
+                    __PACKAGE__->register_method(
+                        method      => 'search_permcheck',
+                        api_name    => 'open-ils.permacrud.search.' . $hint,
+                        class_hint  => $hint,
+                        retriever   => 'open-ils.permacrud.retrieve.' . $hint,
+                        stream      => 1
+                    );
+                }
             }
         }
-    }
+    } catch Error with {
+        my $e = shift;
+        $log->error("error generating permacrud methods: $e");
+    };
 }
 
 



More information about the open-ils-commits mailing list