Products :: ZenRelations :: ToManyRelationship :: ToManyRelationship :: Class ToManyRelationship
[hide private]
[frames] | no frames]

Class ToManyRelationship

source code

                    ExtensionClass.Base --+            
                                          |            
              OFS.CopySupport.CopyContainer --+        
                                              |        
                RelCopySupport.RelCopyContainer --+    
                                                  |    
                ExtensionClass.Base --+           |    
                                      |           |    
            ExtensionClass.Base --+   |           |    
                                  |   |           |    
         OFS.CopySupport.CopySource --+           |    
                                      |           |    
            ExtensionClass.Base --+   |           |    
                                  |   |           |    
                App.Management.Tabs --+           |    
                                      |           |    
        OFS.Traversable.Traversable --+           |    
                                      |           |    
          AccessControl.Owned.Owned --+           |    
                                      |           |    
                            ZItem.ZItem --+       |    
                                          |       |    
                   Acquisition.Implicit --+       |    
                                          |       |    
         AccessControl.Role.RoleManager --+       |    
                                          |       |    
PrimaryPathObjectManager.PrimaryPathManager --+   |    
                                              |   |    
              RelationshipBase.RelationshipBase --+    
                                                  |    
      ToManyRelationshipBase.ToManyRelationshipBase --+
                                                      |
                                                     ToManyRelationship

ToManyRelationship manages the ToMany side of a bi-directional relation between to objects. It does not return values for any of the object* calls defined on ObjectManager so that Zope can still work with its containment assumptions. It provides object*All calles that return its object in the same way that ObjectManager does.

Related references are maintained in a list.

Instance Methods [hide private]
 
__init__(self, id)
ToManyRelationships use an array to store related objects
source code
 
__call__(self)
when we are called return our related object in our aq context
source code
 
hasobject(self, obj)
check to see if we have this object
source code
 
manage_pasteObjects(self, cb_copy_data=None, REQUEST=None)
ToManyRelationships link instead of pasting
source code
 
_add(self, obj)
add an object to one side of this toMany relationship
source code
 
_remove(self, obj=None, suppress_events=False)
remove object from our side of a relationship
source code
 
_remoteRemove(self, obj=None)
remove an object from the far side of this relationship if no object is passed in remove all objects
source code
 
_setObject(self, id, object, roles=None, user=None, set_owner=1)
Set and object onto a ToMany by calling addRelation
source code
 
_delObject(self, id, dp=1, suppress_events=False)
Delete object by its absolute id (ie /zport/dmd/bla/bla) (this is sent out in the object*All API)
source code
 
_getOb(self, id, default=zenmarker)
Return object based on its primaryId.
source code
 
objectIdsAll(self)
Return object ids as their absolute primaryId.
source code
 
objectIds(self, spec=None)
ToManyRelationship doesn't publish objectIds to prevent zope recursion problems.
source code
 
objectValuesAll(self)
return all related object values
source code
 
objectValuesGen(self)
Generator that returns all related objects.
source code
 
objectValues(self, spec=None)
ToManyRelationship doesn't publish objectValues to prevent zope recursion problems.
source code
 
objectItemsAll(self)
Return object items where key is primaryId.
source code
 
objectItems(self, spec=None)
ToManyRelationship doesn't publish objectItems to prevent zope recursion problems.
source code
 
_getCopy(self, container)
create copy and link remote objects if remote side is TO_MANY
source code
 
exportXml(self, ofile, ignorerels=[])
Return an xml representation of a ToManyRelationship...
source code
 
all_meta_types(self, interfaces=None)
Return empty list not allowed to add objects to a ToManyRelation
source code
 
convertToPersistentList(self) source code
 
checkObjectRelation(self, obj, remoteName, parentObject, repair) source code
 
checkRelation(self, repair=False)
Check to make sure that relationship bidirectionality is ok.
source code

Inherited from ToManyRelationshipBase.ToManyRelationshipBase: countObjects, findObjectsById, manage_workspace, setCount

Inherited from RelCopySupport.RelCopyContainer: manage_linkObjects, manage_unlinkObjects

Inherited from OFS.CopySupport.CopyContainer: cb_dataItems, cb_dataValid, manage_CopyContainerAllItems, manage_CopyContainerFirstItem, manage_clone, manage_copyObjects, manage_cutObjects, manage_renameObject, manage_renameObjects, validClipData

Inherited from OFS.CopySupport.CopyContainer (private): _get_id

Inherited from RelationshipBase.RelationshipBase: addRelation, cb_isCopyable, cb_isMoveable, getId, getPrimaryParent, getRelationshipManagerClass, remoteClass, remoteName, remoteType, remoteTypeName, removeRelation

Inherited from PrimaryPathObjectManager.PrimaryPathManager: getPrimaryId, getPrimaryPath, getPrimaryUrlPath, primaryAq

Inherited from ZItem.ZItem: __len__, __repr__, manage, manage_FTPlist, manage_FTPstat, manage_editedDialog, this, titleOrId, title_and_id, title_or_id, tpURL, tpValues

Inherited from OFS.CopySupport.CopySource: cb_userHasCopyOrMovePermission

Inherited from OFS.CopySupport.CopySource (private): _canCopy, _notifyOfCopyTo, _postCopy, _setId

Inherited from App.Management.Tabs: filtered_manage_options, tabs_path_default, tabs_path_info

Inherited from OFS.Traversable.Traversable: absolute_url, absolute_url_path, getPhysicalPath, restrictedTraverse, unrestrictedTraverse, virtual_url_path

Class Variables [hide private]
  __pychecker__ = 'no-override'
  meta_type = "ToManyRelationship"
  security = ClassSecurityInfo()

Inherited from ToManyRelationshipBase.ToManyRelationshipBase: manage_main, manage_options

Inherited from OFS.CopySupport.CopyContainer: manage_renameForm

Inherited from ZItem.ZItem: REQUEST, __allow_access_to_unprotected_subobjects__, __name__, __propsets__, getId__roles__, icon, id, isPrincipiaFolderish, isTopLevelPrincipiaApplicationObject, title

Inherited from ZItem.ZItem (private): _manage_editedDialog

Inherited from App.Management.Tabs: manage_tabs, manage_workspace__roles__

Inherited from OFS.Traversable.Traversable: getPhysicalRoot

Method Details [hide private]

__call__(self)
(Call operator)

source code 

when we are called return our related object in our aq context

Overrides: RelationshipBase.RelationshipBase.__call__

hasobject(self, obj)

source code 

check to see if we have this object

Overrides: RelationshipBase.RelationshipBase.hasobject

manage_pasteObjects(self, cb_copy_data=None, REQUEST=None)

source code 

ToManyRelationships link instead of pasting

Overrides: OFS.CopySupport.CopyContainer.manage_pasteObjects

_add(self, obj)

source code 

add an object to one side of this toMany relationship

Overrides: RelationshipBase.RelationshipBase._add

_remove(self, obj=None, suppress_events=False)

source code 

remove object from our side of a relationship

Overrides: RelationshipBase.RelationshipBase._remove

_remoteRemove(self, obj=None)

source code 

remove an object from the far side of this relationship if no object is passed in remove all objects

Overrides: RelationshipBase.RelationshipBase._remoteRemove

_delObject(self, id, dp=1, suppress_events=False)

source code 

Delete object by its absolute id (ie /zport/dmd/bla/bla) (this is sent out in the object*All API)

Overrides: ToManyRelationshipBase.ToManyRelationshipBase._delObject

_getOb(self, id, default=zenmarker)

source code 

Return object based on its primaryId. plain id will not work!!!

Overrides: OFS.CopySupport.CopyContainer._getOb

objectIds(self, spec=None)

source code 

ToManyRelationship doesn't publish objectIds to prevent zope recursion problems.

Overrides: ZItem.ZItem.objectValues

objectValues(self, spec=None)

source code 

ToManyRelationship doesn't publish objectValues to prevent zope recursion problems.

Overrides: ZItem.ZItem.objectValues

objectItems(self, spec=None)

source code 

ToManyRelationship doesn't publish objectItems to prevent zope recursion problems.

Overrides: ZItem.ZItem.objectValues

_getCopy(self, container)

source code 

create copy and link remote objects if remote side is TO_MANY

Overrides: OFS.CopySupport.CopySource._getCopy

exportXml(self, ofile, ignorerels=[])

source code 
Return an xml representation of a ToManyRelationship
<tomany id='interfaces'>
    <link>/Systems/OOL/Mail</link>
</tomany>

checkRelation(self, repair=False)

source code 

Check to make sure that relationship bidirectionality is ok.

Overrides: RelationshipBase.RelationshipBase.checkRelation