Size: 3778
Comment: Added link to Java site: How and When To Deprecate APIs
|
← Revision 67 as of 2009-02-12 01:04:12
Size: 4163
Comment: converted to 1.6 markup
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
[[TableOfContents([2])]] | <<TableOfContents([2])>> |
Line 7: | Line 7: |
This is an official Request for Comment (RFC) for replacing {{{GraphObjAttributes}}}. | 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)]] |
Line 11: | Line 11: |
10/4/2005, Version 0.2 of the proposal is below. This represents a beta version of the API, with input from: Nerius, Iliana, Rowan, Gary and Ethan. | '''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.''' |
Line 13: | Line 13: |
'''This API is officially open for public comment until __Thursday, October 13, 2005__. After that time, we will take into account all comments, generate a revised API, and the Cytostaff group will vote to accept/reject {{{CyAttributes}}} into the core.''' | === How to Comment === |
Line 15: | Line 15: |
=== 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"]. |
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]]. |
Line 21: | Line 19: |
=== General Notes: === |
=== 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 === |
Line 25: | Line 28: |
* The new interface is now called {{{CyAttributes}}}. ["/RFC1 Comment Name"] | * The new interface is now called {{{CyAttributes}}}. [[/RFC1_Comment_Name]] |
Line 27: | Line 30: |
* {{{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"] | * {{{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]] |
Line 29: | Line 32: |
* {{{CyAttributes}}} uses a {{{MultiHashMap}}} as a back-end data store, but does not extend {{{MultiHashMap}}}. ["/RFC1 Comment Complex Data Structures"] | * {{{CyAttributes}}} uses a {{{MultiHashMap}}} as a back-end data store, but does not extend {{{MultiHashMap}}}. [[/RFC1_Comment_Complex_Data_Structures]] |
Line 31: | Line 34: |
* {{{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 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]] |
Line 34: | Line 37: |
* 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"] | * 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]] |
Line 38: | Line 41: |
* 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"] | * 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]] |
Line 40: | Line 43: |
* 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"] | * 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]] |
Line 42: | Line 45: |
* Event / Listener Framework: Coders who wish to register for attribute events can use the existing listener API provided by {{{MultiHashMap}}}. ["/RFC1 Comment Event Framework"] | * Event / Listener Framework: Coders who wish to register for attribute events can use the existing listener API provided by {{{MultiHashMap}}}. [[/RFC1_Comment_Event_Framework]] |
Line 44: | Line 47: |
* '''Open Item:''' support for Labels (Rowan has this feature in the current implementation of {{{CytoscapeData}}}) ["/RFC1 Comment Labels"] | * Misc items that didn't fit in any existing category: [[/RFC1_Comment_API]] |
Line 46: | Line 49: |
* '''Open Item:''' recommended attribute names ["/RFC1 Comment Attribute Names"] | * '''Open Item:''' how to access global node / edge attributes [[/RFC1_Comment_Global_Attribute_Access]] |
Line 48: | Line 51: |
* Misc items that didn't fit in any existing category: ["/RFC1 Comment API"] | === Deferred Items === |
Line 50: | Line 53: |
References: |
* Recommended attribute names. [[/RFC1_Comment_Attribute_Names]] * Support for attribute labels or categories. [[/RFC1_Comment_Labels]] === References === |
Line 52: | Line 59: |
* [http://java.sun.com/j2se/1.5.0/docs/guide/javadoc/deprecation/deprecation.html How and When To Deprecate APIs] (Java Sun Site). | * [[http://java.sun.com/j2se/1.5.0/docs/guide/javadoc/deprecation/deprecation.html|How and When To Deprecate APIs]] (Java Sun Site). |
Line 54: | Line 61: |
=== Proposed API: Version 0.1 === | === Implementation Plan === |
Line 56: | Line 63: |
* 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] |
* [[/RFC1_Implementation_Plan]] |
<<TableOfContents: execution failed [Argument "maxdepth" must be an integer value, not "[2]"] (see also the log)>>
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 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/
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
How and When To Deprecate APIs (Java Sun Site).