r1 - 13 Nov 2006 - 12:47:25 - RandyLetnessYou are here: OSAF >  Journal Web  >  ContributorNotes > RandyLetnessNotes > CosmoZeroPointSixModelProposal

Cosmo 0.6 Object Model Proposal

Goals

The object model for Cosmo 0.6 needs to provide support for:
  • namespaced attributes
  • new sharing protocol
  • "stamping" of items
  • Chandler specific types and stamps

Object Model

Just the major attributes/methods are shown in the diagram.

Attributes

Items now support namespaces for Attributes. Instead of a Map of Attributes indexed by attribute name, Item now has a Map indexed by QName, which is the qualified name for an attribute, consisting of a namespace and a local name.

ContentItem

All shared items are ContentItems. Cosmo will continue to support basic WebDAV file sharing using ContentItems. ContentItem has several Chandler specific attributes(triageStatus, etc.) to support the dashboard and sharing. A ContentItem can be "stamped" and "unstamped" as any combination of Note, Event, Task, or Message.

Stamps

The idea of "stamping" is new in Cosmo 0.6. Each Item can have any number of Stamps associated with it. A Stamp is type specific data that is attached to an Item. Cosmo 0.6 will support the Chandler stamp types of Event, Task, Note, and Message. It might be useful to have Stamps for collections, such as a stamp to mark a collection as a calendar collection.

Impact of Changes

These changes will require updates to existing code. Code that currently uses the current way of indexing attributes (name only) will need to be updated to use qualified names. The other changes will be in all the code that deals with CalendarEventItem, as that object is no longer in the picture. In Cosmo 0.5, once an item is an event, it stays an event, which is why CalendarEventItem inherits from ContentItem. In Cosmo 0.6, an event is just a stamp on an item, and can be added or removed at will. CalendarEventItem doesn't support this dynamic nature. The service apis will have to be updated work with stamps.

Question: If a ContentItem is stamped with multiple stamps, how do we determine the representation to return in DAV GET. For example, if an Item is a task and event, what do we return on a DAV GET?

Implementation Questions

There are still some questions about how we represent events and stamps internally, but can be solved after the object model materializes.

-- RandyLetness - 13 Nov 2006

toggleopenShow attachmentstogglecloseHide attachments
Topic attachments
I Attachment Action Size Date Who Comment
gifgif CosmoZeroPointSixObjectModel.gif manage 14.1 K 13 Nov 2006 - 12:01 RandyLetness Cosmo 0.6 Object Model
Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r1 | More topic actions
 
Open Source Applications Foundation
Except where otherwise noted, this site and its content are licensed by OSAF under an Creative Commons License, Attribution Only 3.0.
See list of page contributors for attributions.