module documentation

zmsproxyobject.py - ZMS Proxy Object

Provides ZMSProxyObject for core content-object traversal and manipulation.

The ZMSProxyObject class is a wrapper/proxy object used throughout the ZMS runtime to:

  • Enable transparent traversal of ZMS content hierarchies by encapsulating access to underlying content objects and their metadata.
  • Provide a consistent interface for accessing object attributes, child nodes, and properties while delegating actual operations to the proxied object.
  • Support recursive traversal of nested content structures, allowing child nodes to be wrapped as proxy objects for uniform access patterns.
  • Implement metadata access protocols (IZMSMetamodelProvider, IZMSFormatProvider) for introspection of object type definitions and text formatting capabilities.
  • Handle URL construction and physical path resolution within the ZMS content tree.
  • Facilitate request/response handling and access control checks across the object hierarchy.
  • Enable lazy evaluation and computed properties without exposing underlying implementation details.

This abstraction enables flexible content traversal strategies, caching mechanisms, and alternative rendering pipelines while maintaining a unified API for ZMS components that work with content objects.

Key responsibilities:

  • Wrapping proxied ZMS objects with additional traversal metadata (root, base, url_base)
  • Delegating method calls to the proxied object while transforming return values as needed
  • Supporting both simple and recursive child node traversal patterns
  • Managing object hierarchy relationships (parent/child navigation, physical paths)
  • Providing unified access to metadata definitions and format specifications

License: GNU General Public License v2 or later, Organization: ZMS Publishing

Class ZMSProxyObject Provide helpers for ZMSProxyObject.