Skip to content

Object classes

Ryan Newington edited this page Sep 4, 2025 · 7 revisions

Object Classes

An object class is a structural concept that is used to define a named group of bound attributes. The most simple object classes in ACMA have a defined name, and a set of attribute bindings, just the same as in the metaverse. However, ACMA allows for some additional capabilities above and beyond what MIM offers out-of-the-box.

Standard Object Classes

Standard object classes work similarly to MIM metaverse object classes:

  • They have a name and a set of attribute bindings
  • Objects can be created, modified, and deleted
  • They support all standard ACMA features like constructors and rules

Undeletable Object Classes

If an object class is marked as undeletable, then when MIM sends a delete operation for the object to ACMA, it is marked in the database as deleted, and no longer imported back to MIM. The object and its attributes remain in the database.

Key Features:

  • Soft delete: Objects are marked as deleted but not physically removed
  • Searchable: These objects are still accessible in ACMA and can be used in searches by other objects
  • Recoverable: Objects can be reactivated under certain conditions

Undelete Process:

If MIM sends an object add operation, and that object meets the undelete criteria specified in the class constructor, rather than creating a new object, ACMA will re-activate the deleted object, keeping all its existing attribute values intact.

Shadow Object Classes

Shadow objects are objects that are created within ACMA, by deriving them from an existing object (the shadow parent). Shadow objects are created based on the value of a provisioning control attribute on the parent, and deleted either by the provisioning control attribute, or when the shadow parent is deleted. Shadow objects are presented to MIM in the same way as any other object.

Key Characteristics:

  • Automatically managed: Created and deleted based on parent object attributes
  • Derived from parent: Inherit properties and behaviors from parent objects
  • Presented normally: Appear to MIM as regular objects
  • Lifecycle tied to parent: Cannot exist without their parent object

Clone this wiki locally