[rhmessaging-commits] rhmessaging commits: r1515 - mgmt/cumin/python/wooly.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Tue Dec 18 11:30:55 EST 2007


Author: justi9
Date: 2007-12-18 11:30:55 -0500 (Tue, 18 Dec 2007)
New Revision: 1515

Modified:
   mgmt/cumin/python/wooly/__init__.py
Log:
Fixes the build up of error state between requests.



Modified: mgmt/cumin/python/wooly/__init__.py
===================================================================
--- mgmt/cumin/python/wooly/__init__.py	2007-12-18 16:25:59 UTC (rev 1514)
+++ mgmt/cumin/python/wooly/__init__.py	2007-12-18 16:30:55 UTC (rev 1515)
@@ -9,11 +9,91 @@
 
 strings = StringCatalog(__file__)
 
+class Attribute(object):
+    def __init__(self, app, name):
+        self.app = app
+        self.name = name
+        self.widget = None
+        self.default = None
+        self.is_required = True
+
+        self.__path = None
+
+    def path(self):
+        if self.__path == None:
+            if not self.widget.parent():
+                self.__path = self.name
+            else:
+                self.__path = self.widget.path() + "." + self.name
+
+        return self.__path
+
+    def set_required(self, is_required):
+        self.is_required = is_required
+
+    def validate(self, session):
+        value = self.get(session)
+        
+        if value == None and self.is_required:
+            raise Exception("%s not set" % str(self))
+
+    def get(self, session):
+        value = session.get(self.path())
+
+        # Use strict test because empty collections are False
+        if value == None:
+            default = self.get_default(session)
+
+            if default != None:
+                value = self.set(session, default)
+
+        return value
+
+    def add(self, session, value):
+        self.set(session, value)
+
+    def set(self, session, value):
+        return session.set(self.path(), value)
+
+    def get_default(self, session):
+        return self.default
+
+    def set_default(self, default):
+        self.default = default
+
+    def __str__(self):
+        return "%s '%s'" % (self.__class__.__name__, self.path())
+
+class Parameter(Attribute):
+    def __init__(self, app, name):
+        super(Parameter, self).__init__(app, name)
+
+        self.is_collection = False
+
+        app.add_parameter(self)
+
+    def marshal(self, object):
+        if object == None:
+            string = ""
+        else:
+            string = self.do_marshal(object)
+
+        return string
+
+    def do_marshal(self, object):
+        return str(object)
+
+    def unmarshal(self, string):
+        return self.do_unmarshal(string)
+
+    def do_unmarshal(self, string):
+        return string
+
 class Widget(object):
     def __init__(self, app, name):
         self.app = app
-        self.__name = name
-        self.__parent = None
+        self.__name = name # XXX undo this
+        self.__parent = None # XXX undo this
         self.children = list()
         self.attributes = list()
         self.parameters = list()
@@ -22,8 +102,7 @@
         self.__errors_tmpl = Template(self, "errors_html")
         self.__error_message_tmpl = Template(self, "error_message_html")
 
-        self.errors = Attribute(app, "errors")
-        self.errors.set_default(list())
+        self.errors = self.ErrorsAttribute(app, "errors")
         self.add_attribute(self.errors)
 
         self.__ancestors = None
@@ -38,6 +117,10 @@
             if cls is Widget:
                 break
 
+    class ErrorsAttribute(Attribute):
+        def get_default(self, session):
+            return list()
+
     def name(self):
         return self.__name
 
@@ -220,86 +303,6 @@
     def __str__(self):
         return "%s '%s'" % (self.__class__.__name__, self.path())
 
-class Attribute(object):
-    def __init__(self, app, name):
-        self.app = app
-        self.name = name
-        self.widget = None
-        self.default = None
-        self.is_required = True
-
-        self.__path = None
-
-    def path(self):
-        if self.__path == None:
-            if not self.widget.parent():
-                self.__path = self.name
-            else:
-                self.__path = self.widget.path() + "." + self.name
-
-        return self.__path
-
-    def set_required(self, is_required):
-        self.is_required = is_required
-
-    def validate(self, session):
-        value = self.get(session)
-        
-        if value == None and self.is_required:
-            raise Exception("%s not set" % str(self))
-
-    def get(self, session):
-        value = session.get(self.path())
-
-        # Use strict test because empty collections are False
-        if value == None:
-            default = self.get_default(session)
-
-            if default != None:
-                value = self.set(session, default)
-
-        return value
-
-    def add(self, session, value):
-        self.set(session, value)
-
-    def set(self, session, value):
-        return session.set(self.path(), value)
-
-    def get_default(self, session):
-        return self.default
-
-    def set_default(self, default):
-        self.default = default
-
-    def __str__(self):
-        return "%s '%s'" % (self.__class__.__name__, self.path())
-
-class Parameter(Attribute):
-    def __init__(self, app, name):
-        super(Parameter, self).__init__(app, name)
-
-        self.is_collection = False
-
-        app.add_parameter(self)
-
-    def marshal(self, object):
-        if object == None:
-            string = ""
-        else:
-            string = self.do_marshal(object)
-
-        return string
-
-    def do_marshal(self, object):
-        return str(object)
-
-    def unmarshal(self, string):
-        return self.do_unmarshal(string)
-
-    def do_unmarshal(self, string):
-        return string
-
 class Frame(Widget):
     def get_saved_parameters(self, session):
         frame = self.page().get_current_frame(session)




More information about the rhmessaging-commits mailing list