-
Notifications
You must be signed in to change notification settings - Fork 4
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 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
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.
- 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
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 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.
- 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