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 `ToManyRelationshipBase.ToManyRelationshipBase` (private): `_delOb`, `_setOb` Inherited from `RelCopySupport.RelCopyContainer`: `manage_linkObjects`, `manage_unlinkObjects` Inherited from `RelCopySupport.RelCopyContainer` (private): `_checkId`, `_getRelName`, `_getSourceObjects`, `_verifyObjectLink`, `_verifyObjectPaste` 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 `ToManyRelationshipBase.ToManyRelationshipBase` (private): `_count`, `_operation` 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