## page was renamed from RFC1 HOME ## page was renamed from CytoscapeData RFC <> === About this Document === This is an official Request for Comment (RFC) for replacing {{{GraphObjAttributes}}}. RFCs represent one possible mechanism for soliciting feedback for core features / refactoring. For details on RFCs in general, check out the [[http://www.answers.com/main/ntquery?method=4&dsid=2222&dekey=Request+for+Comments&gwp=8&curtab=2222_1&linktext=Request%20for%20Comments|Wikipedia Entry: Request for Comments (RFCs)]] === Status === '''On 10/13/2005, the Cytoscape Developers group unanimously voted to accept {{{CyAttributes}}} into the Cytoscape core. Work on implementation has begun, and the RFC is now officially __closed to public comment__. You can still add comments, but we can't guarantee that those comments will be accepted into the API until our next Cytoscape release.''' === How to Comment === To view/add comments, click on any of 'Comment' links below. By adding your ideas to the Wiki directly, we can more easily organize everyone's ideas, and keep clear records. Be sure to include today's date and your name for each comment. Here is an example to get things started: [[/RFC1_Comment_Name]]. '''Try to keep your comments as concrete and constructive as possible. For example, if you find a part of the API makes no sense, please say so, but don't stop there. Take the extra step and propose alternatives.''' === Proposed API === * Version 0.2 of {{{CyAttributes}}} is now checked in CVS at: src/cytoscape/data/ * [[http://cbio.mskcc.org/~cerami/cyto/docs/cytoscape/data/CyAttributes.html|View Proposed JavaDocs]] === General Notes === The following represents Version 0.2 notes, as agreed by Nerius, Iliana and Ethan: * The new interface is now called {{{CyAttributes}}}. [[/RFC1_Comment_Name]] * {{{CyData}}} is now called {{{MultiHashMap}}}. We wanted to give it a name that reflected its role as a core data structure. [[/RFC1_Comment_CyData_Name]] * {{{CyAttributes}}} uses a {{{MultiHashMap}}} as a back-end data store, but does not extend {{{MultiHashMap}}}. [[/RFC1_Comment_Complex_Data_Structures]] * {{{CyAttributes}}} provides several overloaded versions of {{{setAttribute}}}, one for each basic data type, e.g. {{{setAttribute(String id, String attributeName, Double value)}}}. It also provides several varients of getAttribute, e.g. {{{Double getDoubleAttribute(String id, String attributeName)}}}. [[/RFC1_Comment_Getters_Setters]] * {{{CyAttributes}}} provides support for 'simple' lists. A 'simple' list is defined as follows: * All items within the list are of the same type, and are chosen from one of the following: Boolean, Integer, Double or String. [[/RFC1_Comment_Lists]] * {{{CyAttributes}}} provides support for 'simple' maps. A 'simple' map is defined as follows: * All keys within the map are of type: String. * All values within the map are of the same type, and are chosen from one of the following: Boolean, Integer, Double or String. [[/RFC1_Comment_Maps]] * To do complicated things, such as create arbitarily complex data structures, you can obtain the {{{MultiHashMap}}} and {{{MultiHashMapDataDefinition}}} from {{{CyAttributes}}}. [[/RFC1_Comment_Complex_Data_Structures]] * Event / Listener Framework: Coders who wish to register for attribute events can use the existing listener API provided by {{{MultiHashMap}}}. [[/RFC1_Comment_Event_Framework]] * Misc items that didn't fit in any existing category: [[/RFC1_Comment_API]] * '''Open Item:''' how to access global node / edge attributes [[/RFC1_Comment_Global_Attribute_Access]] === Deferred Items === * Recommended attribute names. [[/RFC1_Comment_Attribute_Names]] * Support for attribute labels or categories. [[/RFC1_Comment_Labels]] === References === * [[http://java.sun.com/j2se/1.5.0/docs/guide/javadoc/deprecation/deprecation.html|How and When To Deprecate APIs]] (Java Sun Site). === Implementation Plan === * [[/RFC1_Implementation_Plan]]