commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnue/appserver/src/classrep Class.py Module.py ...


From: Johannes Vetter
Subject: gnue/appserver/src/classrep Class.py Module.py ...
Date: Tue, 27 May 2003 10:30:57 -0400

CVSROOT:        /cvsroot/gnue
Module name:    gnue
Changes by:     Johannes Vetter <address@hidden>        03/05/27 10:30:57

Modified files:
        appserver/src/classrep: Class.py Module.py Property.py 
                                __init__.py ctest.py dtest.py test.py 
Added files:
        appserver/src/classrep: Base.py Definition.py repository.ini 

Log message:
        Added repository definition files, improved classes

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/classrep/Base.py?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/classrep/Definition.py?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/classrep/repository.ini?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/classrep/Class.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/classrep/Module.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/classrep/Property.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/classrep/__init__.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/classrep/ctest.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/classrep/dtest.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/classrep/test.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text

Patches:
Index: gnue/appserver/src/classrep/Class.py
diff -c gnue/appserver/src/classrep/Class.py:1.2 
gnue/appserver/src/classrep/Class.py:1.3
*** gnue/appserver/src/classrep/Class.py:1.2    Sat Mar  8 12:41:52 2003
--- gnue/appserver/src/classrep/Class.py        Tue May 27 10:30:57 2003
***************
*** 19,45 ****
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: Class.py,v 1.2 2003/03/08 17:41:52 jvetter Exp $
  
  from Namespace import *
  from Property import *
  
  # 
=============================================================================
  # Dictionary with classes
  # 
=============================================================================
! class ClassDict:
  
    # 
---------------------------------------------------------------------------
    # Create a dictionary with all classes [from a specified module]
    # 
---------------------------------------------------------------------------
!   def __init__ (self, session, moduleDict, module = None):
!     self.modules  = moduleDict
!     self._session = session
!     self._module  = module
!     self._cache   = {}
  
      if module:
!       self._updateCache (self._requestData (module.id))
  
    # 
---------------------------------------------------------------------------
    # Update the cache with all business objects in list
--- 19,57 ----
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: Class.py,v 1.3 2003/05/27 14:30:57 jvetter Exp $
  
+ from Base import *
  from Namespace import *
  from Property import *
  
  # 
=============================================================================
  # Dictionary with classes
  # 
=============================================================================
! class ClassDict (BaseDictionary):
  
    # 
---------------------------------------------------------------------------
    # Create a dictionary with all classes [from a specified module]
    # 
---------------------------------------------------------------------------
!   def __init__ (self, session, moduleDict, module = None, definition = None):
!     BaseDictionary.__init__ (self, session)
  
+     self.modules    = moduleDict
+     self._module    = module
+     self.definition = definition
+ 
+     if not definition:
+       self.definition = self.modules.definition
+ 
+     # if we have an initial definition, use all it's classes
+     if self.definition:
+       list = [klass [1] for klass in self.definition.classes ()]
+       self._updateCache (list)
+ 
+     # if a module is specified, fetch all it's classes 
+     # FIXME: use a definition somehow ...
      if module:
!       self._updateCache (self._requestData (module.gnue_id))
  
    # 
---------------------------------------------------------------------------
    # Update the cache with all business objects in list
***************
*** 59,67 ****
      if className:
        cond += [["eq", ""], ["field", "gnue_name"], ["const", className]]
  
!     return self._session.find ("gnue_class", cond, 
!                                ["gnue_module", "gnue_name"],
!                              ["gnue_module", "gnue_name"])
  
    # 
---------------------------------------------------------------------------
    # Return an item from the cache using the ModuleDict for module verification
--- 71,79 ----
      if className:
        cond += [["eq", ""], ["field", "gnue_name"], ["const", className]]
  
!     return self.session.find ("gnue_class", cond, 
!                               ["gnue_module", "gnue_name"],
!                               ["gnue_module", "gnue_name"])
  
    # 
---------------------------------------------------------------------------
    # Return an item from the cache using the ModuleDict for module verification
***************
*** 75,83 ****
    # 
---------------------------------------------------------------------------
    def _module_from_cache (self, item):
      for module in self.modules.values ():
!       if module.id == item.gnue_module:
        return module
!     raise EBadReference (item.name, "gnue_module")
  
    # 
---------------------------------------------------------------------------
    # Return a class object if it exists
--- 87,95 ----
    # 
---------------------------------------------------------------------------
    def _module_from_cache (self, item):
      for module in self.modules.values ():
!       if module.gnue_id == item.gnue_module:
        return module
!     raise EBadReference (item.gnue_name, "gnue_module")
  
    # 
---------------------------------------------------------------------------
    # Return a class object if it exists
***************
*** 91,98 ****
        return self._cache [name]
  
      # since we had no match cached, ask for it
!     print "DEBUG: Class: REFETCH %s, %s" % (module.id, className)
!     res = self._requestData (module.id, className)
  
      if len (res) == 1:
        self._updateCache (res)
--- 103,110 ----
        return self._cache [name]
  
      # since we had no match cached, ask for it
!     print "DEBUG: Class: REFETCH %s, %s" % (module.gnue_id, className)
!     res = self._requestData (module.gnue_id, className)
  
      if len (res) == 1:
        self._updateCache (res)
***************
*** 100,141 ****
  
      raise EClassNotFound (name)
  
-   # 
---------------------------------------------------------------------------
-   # Get the keys
-   # 
---------------------------------------------------------------------------
-   def keys (self):
-     return self._cache.keys ()
- 
-   # 
---------------------------------------------------------------------------
-   # Get the values
-   # 
---------------------------------------------------------------------------
-   def values (self):
-     return self._cache.values ()
- 
-   # 
---------------------------------------------------------------------------
-   # Get the (key, value) pairs
-   # 
---------------------------------------------------------------------------
-   def items (self):
-     return self._cache.items ()
- 
-   # 
---------------------------------------------------------------------------
-   # Return wether the given key (class) exists
-   # 
---------------------------------------------------------------------------
-   def has_key (self, name):
-     return self._cache.has_key (name)
- 
-   # 
---------------------------------------------------------------------------
-   # Get the number of classes Use len (aClassDict) to get this value
-   # 
---------------------------------------------------------------------------
-   def __len__ (self):
-     return len (self._cache)
- 
-   # 
---------------------------------------------------------------------------
-   # Get a specific item by name
-   # 
---------------------------------------------------------------------------
-   def __getitem__ (self, name):
-     return self.get (name)
- 
  
  
  # 
=============================================================================
--- 112,117 ----
***************
*** 150,164 ****
      self._object    = object
      self.classes    = classDict
      self.module     = module
!     self.properties = PropertyDict (classDict._session, classDict.modules, 
self)
  
-     self.fullName   = createName (self.module.name, self.name)
  
    # 
---------------------------------------------------------------------------
    # Attribute access is redirected into the gnue-namespace
    # 
---------------------------------------------------------------------------
    def __getattr__ (self, attr):
!     return getattr (self._object, createName ("gnue", attr))
  
    # 
---------------------------------------------------------------------------
    # Return a property by name
--- 126,142 ----
      self._object    = object
      self.classes    = classDict
      self.module     = module
!     self.definition = classDict.definition
!     self.fullName   = createName (module.gnue_name, object.gnue_name)
! 
!     self.properties = PropertyDict (classDict.session, classDict.modules, 
self)
  
  
    # 
---------------------------------------------------------------------------
    # Attribute access is redirected into the gnue-namespace
    # 
---------------------------------------------------------------------------
    def __getattr__ (self, attr):
!     return getattr (self._object, attr)
  
    # 
---------------------------------------------------------------------------
    # Return a property by name
Index: gnue/appserver/src/classrep/Module.py
diff -c gnue/appserver/src/classrep/Module.py:1.3 
gnue/appserver/src/classrep/Module.py:1.4
*** gnue/appserver/src/classrep/Module.py:1.3   Sat Mar  8 12:41:52 2003
--- gnue/appserver/src/classrep/Module.py       Tue May 27 10:30:57 2003
***************
*** 19,44 ****
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: Module.py,v 1.3 2003/03/08 17:41:52 jvetter Exp $
  
  
  from Namespace import *
  from Class import ClassDict
  
  # 
=============================================================================
  # A List Of Business Object Modules
  # 
=============================================================================
! class ModuleDict:
  
    # 
---------------------------------------------------------------------------
    # This class behaves like a dictionary of all available modules with the
    # keys being the module names and the values being Module objects.
    # 
---------------------------------------------------------------------------
!   def __init__ (self, session):
!     self._session = session
!     self._cache   = {}
  
!     self._updateCache (self._requestData ())
  
    # 
---------------------------------------------------------------------------
    # Integrate a list of business objects into the cache
--- 19,48 ----
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: Module.py,v 1.4 2003/05/27 14:30:57 jvetter Exp $
  
  
+ from Base import *
  from Namespace import *
  from Class import ClassDict
  
  # 
=============================================================================
  # A List Of Business Object Modules
  # 
=============================================================================
! class ModuleDict (BaseDictionary):
  
    # 
---------------------------------------------------------------------------
    # This class behaves like a dictionary of all available modules with the
    # keys being the module names and the values being Module objects.
    # 
---------------------------------------------------------------------------
!   def __init__ (self, session, definition = None):
!     BaseDictionary.__init__ (self, session)
!     self.definition = definition
  
!     if definition:
!       self._updateCache ([module [1] for module in definition.modules ()])
!     else:
!       self._updateCache (self._requestData ())
  
    # 
---------------------------------------------------------------------------
    # Integrate a list of business objects into the cache
***************
*** 57,64 ****
      cond = []
      if name:
        cond = [["eq", ""], ["field", "gnue_name"], ["const", name]]
!     return self._session.find ("gnue_module", cond, ["gnue_name"],
!                                ["gnue_name", "gnue_id"])
  
    # 
---------------------------------------------------------------------------
    # Internal: create an instance from a cached object
--- 61,68 ----
      cond = []
      if name:
        cond = [["eq", ""], ["field", "gnue_name"], ["const", name]]
!     return self.session.find ("gnue_module", cond, ["gnue_name"],
!                              ["gnue_name", "gnue_id"])
  
    # 
---------------------------------------------------------------------------
    # Internal: create an instance from a cached object
***************
*** 85,125 ****
        
      raise EModuleNotFound (name)
  
-   # 
---------------------------------------------------------------------------
-   # Get the keys
-   # 
---------------------------------------------------------------------------
-   def keys (self):
-     return self._cache.keys ()
- 
-   # 
---------------------------------------------------------------------------
-   # Get the values
-   # 
---------------------------------------------------------------------------
-   def values (self):
-     return self._cache.values ()
- 
-   # 
---------------------------------------------------------------------------
-   # Get the (key, value) pairs
-   # 
---------------------------------------------------------------------------
-   def items (self):
-     return self._cache.items ()
- 
-   # 
---------------------------------------------------------------------------
-   # Return wether the given key exists
-   # 
---------------------------------------------------------------------------
-   def has_key (self, name):
-     return self._cache.has_key (name)
- 
-   # 
---------------------------------------------------------------------------
-   # Get the count of modules. Call len (myModuleDict) to get this value.
-   # 
---------------------------------------------------------------------------
-   def __len__ (self):
-     return len (self._cache)
- 
-   # 
---------------------------------------------------------------------------
-   # Get a specific module by name
-   # 
---------------------------------------------------------------------------
-   def __getitem__ (self, name):
-     return self.get (name)
  
  
  # 
=============================================================================
--- 89,94 ----
***************
*** 131,149 ****
      # _object is the underlying business object
      self.modules  = modDict
      self._object  = object
-     self._classes = None
  
!     self.fullName = self.name
  
    # 
---------------------------------------------------------------------------
    # Return an attribute's value
    # 
---------------------------------------------------------------------------
    def __getattr__ (self, attr):
      if attr == 'classes':
!       if not self._classes:
!       self._classes = ClassDict (self.modules._session, self.modules, self)
!       return self._classes
  
      else:
!       return getattr (self._object, createName ("gnue", attr))
  
--- 100,117 ----
      # _object is the underlying business object
      self.modules  = modDict
      self._object  = object
  
!     self.fullName = self.gnue_name
  
    # 
---------------------------------------------------------------------------
    # Return an attribute's value
    # 
---------------------------------------------------------------------------
    def __getattr__ (self, attr):
      if attr == 'classes':
!       self.__dict__ ['classes'] = ClassDict (self.modules.session,
!                                              self.modules, self)
!       return self.classes
  
      else:
!       return getattr (self._object, attr)
  
Index: gnue/appserver/src/classrep/Property.py
diff -c gnue/appserver/src/classrep/Property.py:1.1 
gnue/appserver/src/classrep/Property.py:1.2
*** gnue/appserver/src/classrep/Property.py:1.1 Sat Mar  8 12:41:53 2003
--- gnue/appserver/src/classrep/Property.py     Tue May 27 10:30:57 2003
***************
*** 19,42 ****
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: Property.py,v 1.1 2003/03/08 17:41:53 jvetter Exp $
  
  from Namespace import *
  
  # 
=============================================================================
  # Dictionary with all properties of a given class
  # 
=============================================================================
! class PropertyDict:
  
    # 
---------------------------------------------------------------------------
    # Construct a Property-Dictionary for class klass
    # 
---------------------------------------------------------------------------
!   def __init__ (self, session, moduleDict, klass):
!     self._session = session
!     self.modules  = moduleDict
!     self.klass    = klass
!     self._cache   = {}
!     self._updateCache (self._requestData (self.klass.id))
  
    # 
---------------------------------------------------------------------------
    # Update cache with all business objects in list
--- 19,55 ----
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: Property.py,v 1.2 2003/05/27 14:30:57 jvetter Exp $
  
+ from Base import *
  from Namespace import *
  
  # 
=============================================================================
  # Dictionary with all properties of a given class
  # 
=============================================================================
! class PropertyDict (BaseDictionary):
  
    # 
---------------------------------------------------------------------------
    # Construct a Property-Dictionary for class klass
    # 
---------------------------------------------------------------------------
!   def __init__ (self, session, moduleDict, klass, definition = None):
!     BaseDictionary.__init__ (self, session)
! 
!     self.modules    = moduleDict
!     self.klass      = klass
!     self.definition = definition
! 
!     if not self.definition:
!       self.definition = klass.definition
! 
!     if not self.definition:
!       self.definition = moduleDict.definition
! 
!     if self.definition:
!       list = [prop [1] for prop in self.definition.properties 
(klass.fullName)]
!       self._updateCache (list)
! 
!     self._updateCache (self._requestData (self.klass.gnue_id))
  
    # 
---------------------------------------------------------------------------
    # Update cache with all business objects in list
***************
*** 50,62 ****
    # Read a list of properties from the datasource
    # 
---------------------------------------------------------------------------
    def _requestData (self, classId, propertyName = None):
!     print "DEBUG: Property: requesting %s, %s" % (classId, propertyName)
  
      cond = [["eq", ""], ["field", "gnue_class"], ["const", classId]]
      if propertyName:
        cond += [["eq", ""], ["field", "gnue_name"], ["const", propertyName]]
  
!     return self._session.find ("gnue_property", cond, ["gnue_name"], 
                                 ["gnue_module", "gnue_class", "gnue_name", 
                                "gnue_type", "gnue_comment"])
  
--- 63,82 ----
    # Read a list of properties from the datasource
    # 
---------------------------------------------------------------------------
    def _requestData (self, classId, propertyName = None):
!     # Special case: if there is already a property with a matching class id
!     # we assume all properties of the requesed class are already cached
!     for prop in self.values ():
!       if prop.gnue_class == classId: 
!       return []
! 
!     print "DEBUG: Property: requestData %s, %s" % (classId, propertyName)
  
      cond = [["eq", ""], ["field", "gnue_class"], ["const", classId]]
+ 
      if propertyName:
        cond += [["eq", ""], ["field", "gnue_name"], ["const", propertyName]]
  
!     return self.session.find ("gnue_property", cond, ["gnue_name"], 
                                 ["gnue_module", "gnue_class", "gnue_name", 
                                "gnue_type", "gnue_comment"])
  
***************
*** 71,79 ****
    # 
---------------------------------------------------------------------------
    def _module_from_cache (self, item):
      for module in self.modules.values ():
!       if module.id == item.gnue_module:
        return module
!     raise EBadReference (item.name, "gnue_module")
  
  
    # 
---------------------------------------------------------------------------
--- 91,99 ----
    # 
---------------------------------------------------------------------------
    def _module_from_cache (self, item):
      for module in self.modules.values ():
!       if module.gnue_id == item.gnue_module:
        return module
!     raise EBadReference (item.gnue_name, "gnue_module")
  
  
    # 
---------------------------------------------------------------------------
***************
*** 89,95 ****
  
      # since we had no match in the cache ask for it
      print "DEBUG: Property: REFETCH: %s, %s" % (self.klass.fullName, name)
!     res = self._requestData (self.klass.id, name)
  
      if len (res) == 1:
        self._updateCache (res)
--- 109,115 ----
  
      # since we had no match in the cache ask for it
      print "DEBUG: Property: REFETCH: %s, %s" % (self.klass.fullName, name)
!     res = self._requestData (self.klass.gnue_id, name)
  
      if len (res) == 1:
        self._updateCache (res)
***************
*** 97,138 ****
  
      raise EPropertyNotFound (self.klass.fullName, name)
  
-   # 
---------------------------------------------------------------------------
-   # Get the keys 
-   # 
---------------------------------------------------------------------------
-   def keys (self):
-     return self._cache.keys ()
- 
-   # 
---------------------------------------------------------------------------
-   # Get the values
-   # 
---------------------------------------------------------------------------
-   def values (self):
-     return self._cache.values ()
- 
-   # 
---------------------------------------------------------------------------
-   # Get the (key, value) pairs
-   # 
---------------------------------------------------------------------------
-   def items (self):
-     return self._cache.items ()
- 
-   # 
---------------------------------------------------------------------------
-   # Return wether the given key exists or not
-   # 
---------------------------------------------------------------------------
-   def has_key (self, name):
-     return self._cache.has_key (name)
- 
-   # 
---------------------------------------------------------------------------
-   # Get the number of properties in the dictionary
-   # 
---------------------------------------------------------------------------
-   def __len__ (self):
-     return len (self._cache)
- 
-   # 
---------------------------------------------------------------------------
-   # Get a specific property by name
-   # 
---------------------------------------------------------------------------
-   def __getitem__ (self, name):
-     return self.get (name)
- 
  
  # 
=============================================================================
  # A Business Object Property
--- 117,122 ----
***************
*** 148,157 ****
      self._object  = object
  
      # gnue_property.gnue_name is already a fully qualified identifier
!     self.fullName = self.name
  
    # 
---------------------------------------------------------------------------
    # all unknown attributes are routed to the gnue-namespace
    # 
---------------------------------------------------------------------------
    def __getattr__ (self, attr):
!     return getattr (self._object, createName ("gnue", attr))
--- 132,141 ----
      self._object  = object
  
      # gnue_property.gnue_name is already a fully qualified identifier
!     self.fullName = object.gnue_name
  
    # 
---------------------------------------------------------------------------
    # all unknown attributes are routed to the gnue-namespace
    # 
---------------------------------------------------------------------------
    def __getattr__ (self, attr):
!     return getattr (self._object, attr)
Index: gnue/appserver/src/classrep/__init__.py
diff -c gnue/appserver/src/classrep/__init__.py:1.2 
gnue/appserver/src/classrep/__init__.py:1.3
*** gnue/appserver/src/classrep/__init__.py:1.2 Sat Mar  8 12:41:53 2003
--- gnue/appserver/src/classrep/__init__.py     Tue May 27 10:30:57 2003
***************
*** 19,42 ****
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: __init__.py,v 1.2 2003/03/08 17:41:53 jvetter Exp $
  
  from Module import *
  from Class  import *
  from Namespace import *
  
! Modules = None
! Classes = None
  
  # 
-----------------------------------------------------------------------------
  # find a class in the class repository
  # 
-----------------------------------------------------------------------------
  def findClass (className, session):
!   global Modules, Classes
  
!   if not Modules:
!     Modules = ModuleDict (session)
!   if not Classes:
!     Classes = ClassDict (session, Modules)
  
!   return Classes [className]
--- 19,53 ----
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: __init__.py,v 1.3 2003/05/27 14:30:57 jvetter Exp $
  
  from Module import *
  from Class  import *
  from Namespace import *
+ from Definition import *
  
! _CRDefinition = None
! _CRModules    = None
! _CRClasses    = None
! 
! # 
-----------------------------------------------------------------------------
! # load a class repository definition from file
! # 
-----------------------------------------------------------------------------
! def loadDefinition (fileName):
!   global _CRDefinition
!   _CRDefinition = RepositoryDefinition (fileName)
!   return _CRDefinition
  
  # 
-----------------------------------------------------------------------------
  # find a class in the class repository
  # 
-----------------------------------------------------------------------------
  def findClass (className, session):
!   global _CRModules, _CRClasses, _CRDefinition
! 
!   if not _CRModules:
!     _CRModules = ModuleDict (session, _CRDefinition)
  
!   if not _CRClasses:
!     _CRClasses = ClassDict (session, _CRModules)
  
!   return _CRClasses [className]
Index: gnue/appserver/src/classrep/ctest.py
diff -c gnue/appserver/src/classrep/ctest.py:1.1 
gnue/appserver/src/classrep/ctest.py:1.2
*** gnue/appserver/src/classrep/ctest.py:1.1    Mon Feb 24 11:46:02 2003
--- gnue/appserver/src/classrep/ctest.py        Tue May 27 10:30:57 2003
***************
*** 1,35 ****
  from language import Session
! from classrep import Class
  
  sess = Session.newSession ("hacker", "secret")
- cls = Class.ClassDict (sess)
  
! print
! print 'Class "person":'
! c = cls ["person"]
! print c.name + ": " + c.comment
! c = cls ["module"]
! print c.name + ": " + c.comment
  
! print
! print "Number of classes: %d" % len (cls)
  
! print
! print "All classes via keys ():"
! for k in cls.keys ():
!   c = cls [k]
!   print k + ": " + c.comment
  
! print
! print "All classes via values ():"
! for c in cls.values ():
!   print c.name + ": " + c.comment, ";", c.module
  
! print
! print "All classes via items ():"
! for i in cls.items ():
!   print i
  
  print
! print 'Is there a class "person": %d' % cls.has_key ("person")
! print 'Is there a class "foo": %d' % cls.has_key ("foo")
--- 1,58 ----
  from language import Session
! from classrep import *
  
  sess = Session.newSession ("hacker", "secret")
  
! Modules = ModuleDict (sess)
! Classes = ClassDict (sess, Modules)
  
! print "\nRequesting module 'address' ..."
! addr = Modules ['address']
  
! print "  %s: %s" % (addr.gnue_name, addr.gnue_comment)
! print "  Full name: %s\n" % addr.fullName
  
! print "Number of classes in ClassDict: %d\n" % len (Classes)
  
! print "Requesting class 'address_person':"
! klass = Classes ['address_person']
! 
! print "  %s: %s" % (klass.gnue_name, klass.gnue_comment)
! print "  Full name: %s\n" % klass.fullName
! 
! print "Number of classes in ClassDict: %d\n" % len (Classes)
! 
! print "Number of properties in '%s': %d" % (klass.gnue_name, 
!                       len (klass.properties))
! 
! for p in klass.properties.keys ():
!   print p
! 
! print "Has class 'address_dummy' : %d" % Classes.has_key ('address_dummy')
! print "Has class 'address_person': %d" % Classes.has_key ('address_person')
  
  print
! print "Requesting class 'gnue_module' :"
! gmodule = Classes ['gnue_module']
! print "  %s: %s\n" % (gmodule.gnue_name, gmodule.gnue_comment)
! print "Number of classes in ClassDict: %d\n" % len (Classes)
! 
! print "gnue_module: findProp gnue_name"
! x = gmodule.findProp ("gnue_name")
! print "Property 'gnue_name':", x.gnue_name, "is", x.gnue_type, ":", \
!               x.gnue_comment
! print "           Full Name:", x.fullName
! 
! print "\n------- listing contents\n"
! 
! print "by keys ():"
! for key in Classes.keys ():
!   print "Key:", key
! 
! print "\nby values ():"
! for val in Classes.values ():
!   print "Val:", val.gnue_name
! 
! print "\nas tuple:"
! for tup in Classes.items ():
!   print "Item:", tup
Index: gnue/appserver/src/classrep/dtest.py
diff -c gnue/appserver/src/classrep/dtest.py:1.1 
gnue/appserver/src/classrep/dtest.py:1.2
*** gnue/appserver/src/classrep/dtest.py:1.1    Sat Mar  8 12:41:53 2003
--- gnue/appserver/src/classrep/dtest.py        Tue May 27 10:30:57 2003
***************
*** 1,21 ****
  from language import Session
  import classrep
  
  sess = Session.newSession ("hacker", "secret")
  
  print "Requesting class 'address_person'\n"
  
  # -------------
  klass = classrep.findClass ("address_person", sess)
  
! print "Name = %s, Comment = %s, Fullname = %s\n" % (klass.name, 
!                   klass.comment, klass.fullName)
  print "Number of properties in class: %d" % len (klass.properties)
  
  
  for p in klass.properties.keys ():
    pObj = klass.properties [p]
!   print "Property %s: %s (%s)" % (pObj.name, pObj.type, pObj.comment)
  
  klass = classrep.findClass ("gnue_module", sess)
  print "Number of properties in %s: %d" % (klass.fullName, 
--- 1,30 ----
  from language import Session
  import classrep
+ from Definition import *
  
  sess = Session.newSession ("hacker", "secret")
+ crdef = RepositoryDefinition ('classrep/classrepository.ini')
+ classrep.Definition = crdef
+ 
+ print "Requesting class 'gnue_property'\n"
+ klass = classrep.findClass ("gnue_property", sess)
+ 
+ print "\n"
  
  print "Requesting class 'address_person'\n"
  
  # -------------
  klass = classrep.findClass ("address_person", sess)
  
! print "Name = %s, Comment = %s, Fullname = %s\n" % (klass.gnue_name, 
!                   klass.gnue_comment, klass.fullName)
  print "Number of properties in class: %d" % len (klass.properties)
  
  
  for p in klass.properties.keys ():
    pObj = klass.properties [p]
!   print "Property %s: %s (%s)" % (pObj.gnue_name, pObj.gnue_type, 
!       pObj.gnue_comment)
  
  klass = classrep.findClass ("gnue_module", sess)
  print "Number of properties in %s: %d" % (klass.fullName, 
***************
*** 29,49 ****
  
  klass = classrep.findClass ("address_person", sess)
  
! print "Name = %s, Comment = %s, Fullname = %s\n" % (klass.name, 
!                   klass.comment, klass.fullName)
  print "Number of properties in class: %d" % len (klass.properties)
  
  
  for p in klass.properties.keys ():
    pObj = klass.properties [p]
!   print "Property %s: %s (%s)" % (pObj.name, pObj.type, pObj.comment)
  
  # ---- gnue_*
  
  print "Fetching gnue_class :)"
  gclass = classrep.findClass ("gnue_class", sess)
! print "Name = %s (full:%s) Comment = %s" % (gclass.name, gclass.fullName,
!                  gclass.comment)
  
  print "Number of properties: %d" % len (gclass.properties)
  
--- 38,59 ----
  
  klass = classrep.findClass ("address_person", sess)
  
! print "Name = %s, Comment = %s, Fullname = %s\n" % (klass.gnue_name, 
!                   klass.gnue_comment, klass.fullName)
  print "Number of properties in class: %d" % len (klass.properties)
  
  
  for p in klass.properties.keys ():
    pObj = klass.properties [p]
!   print "Property %s: %s (%s)" % (pObj.gnue_name, pObj.gnue_type, 
!        pObj.gnue_comment)
  
  # ---- gnue_*
  
  print "Fetching gnue_class :)"
  gclass = classrep.findClass ("gnue_class", sess)
! print "Name = %s (full:%s) Comment = %s" % (gclass.gnue_name, gclass.fullName,
!                  gclass.gnue_comment)
  
  print "Number of properties: %d" % len (gclass.properties)
  
Index: gnue/appserver/src/classrep/test.py
diff -c gnue/appserver/src/classrep/test.py:1.2 
gnue/appserver/src/classrep/test.py:1.3
*** gnue/appserver/src/classrep/test.py:1.2     Mon Feb 24 11:44:34 2003
--- gnue/appserver/src/classrep/test.py Tue May 27 10:30:57 2003
***************
*** 1,30 ****
  from language import Session
! from classrep import Module
  
  sess = Session.newSession ("hacker", "secret")
! mod = Module.ModuleDict (sess)
  
! print
! print 'Module "address":'
  m = mod ["address"]
! print m.name + ": " + m.comment
  
! print "\nClasses of the gnue-module:"
! m = mod ["gnue"]
! cDict = m.classes ()
  
! for key in m.classes ().keys ():
!   aClass = cDict [key]
!   print "has class", aClass.name, "aka", aClass.fqName
  
- print
- print "Number of modules: %d" % len (mod)
- 
- print
  print "All modules via keys ():"
  for k in mod.keys ():
    m = mod [k]
!   print k + ": " + m.comment
  
  print
  print "All modules via values ():"
--- 1,23 ----
  from language import Session
! from classrep import *
  
  sess = Session.newSession ("hacker", "secret")
! mod = ModuleDict (sess)
  
! print '\nModule "address":'
  m = mod ["address"]
! print "%s: %s\n" % (m.name, m.comment)
  
! print "Classes in 'address':"
! for k in m.classes.keys ():
!   print k
  
! print "Number of modules: %d\n" % len (mod)
  
  print "All modules via keys ():"
  for k in mod.keys ():
    m = mod [k]
!   print k, ":", m.comment
  
  print
  print "All modules via values ():"




reply via email to

[Prev in Thread] Current Thread [Next in Thread]