Ticket #441 (closed todo: done)

Opened 2 years ago

Last modified 2 years ago

define the model root

Reported by: ichthyo Owned by: ichthyo
Priority: grave Milestone: 0integration
Component: lumieraProc Keywords: session design
Cc: Blocked By:
Blocking: #154, #282, #354, #442, #446, #447

Description

Define what to use as root of the high-level model. It should be a meta-object which can be created inline by the Index. Later on this MObject is expected to handle some kind of binding to session-global default handling rules. Probably it will give Advice to other parts of the model. Thus it might link to a suitable new kind of asset.

Change History

comment:1 Changed 2 years ago by ichthyo

  • Blocked By 442 added

comment:2 Changed 2 years ago by ichthyo

  • Status changed from new to accepted

the model root could be either a one-off meta object, or it could be a Binding..?

comment:3 Changed 2 years ago by ichthyo

...thus, following the reasoning regarding the Binding implementation, model root becomes a separate MObject subclass for now.

comment:4 Changed 2 years ago by ichthyo

  • Blocking 154 added

...and this new model root MObjec class isn't just a decoy; rather, by refactoring the way how PlacementIndex gets created, we can wire this root object magically back to the session, allowing to locate the rules and defaults store here. This opens a nice opportunity to get a grip at the assets lifecycle: now it's sufficient just to store/load them through the session root element

comment:5 Changed 2 years ago by ichthyo

  • Blocking 446 added

comment:6 Changed 2 years ago by ichthyo

  • Blocking 447 added

comment:7 Changed 2 years ago by ichthyo

  • Blocking 442 added
  • Blocked By 442 removed

comment:8 Changed 2 years ago by ichthyo

  • Status changed from accepted to closed
  • Resolution set to done

Implemented as a placeholder MObject for now. Can be created via the MobjectFactory. This happens when the SessionImpl object is created. Handling of the model root element is part of the PlacementIndex implementation, which ensures there is always an root scope.

Whhew. This one was by far more expensive than expected.

comment:9 Changed 2 years ago by ichthyo

  • Blocking 282 added

(In #282) * hash-ID == placement-ID == object instance identity == key within PlacementIndex storage table.

  • a special SessionServices API was created, allowing PlacementRef to access the current session transparently.
  • definition can be considered final (and documented thus far)
Note: See TracTickets for help on using tickets.