Size: 7688
Comment:
|
Size: 708
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
{{{#!java package cytoscape.data; |
## page was renamed from RFC1 HOME ## page was renamed from CytoscapeData RFC === Cytoscape RFC #1: Replacing Graph Obj Attributes === |
Line 4: | Line 5: |
import cytoscape.data.attr.CyData; import cytoscape.data.attr.CyDataDefinition; |
This is an official Request for Comment (RFC) for replacing {{{GraphObjAttributes}}}. |
Line 7: | Line 7: |
import java.util.List; import java.util.Map; |
'''Status:''' Version 0.1 of the proposal is below. This represents Ethan's first stab at creating a new API. |
Line 10: | Line 9: |
'''How to Comment:''' To view/add comments, click on any of the links below, and add your comments directly to the Wiki. | |
Line 11: | Line 11: |
public interface AttributeData { | '''General Notes:''' |
Line 13: | Line 13: |
// TODO: Event Listener Framework? // TODO: Rowan's labels? /** * Gets a List of All Attribute Names. * * @return An Array of String Objects. */ public String[] getAttributeNames(); /** * Determines if the specified id/attributeName pair exists. * * @param id unique identifier. * @param attributeName attribute name. * @return true or false. */ public boolean hasAttribute(String id, String attributeName); /** * Sets an id/attributeName pair of type boolean. * * @param id unique identifier. * @param attributeName attribute name. * @param value boolean value. */ public void setAttribute(String id, String attributeName, boolean value); /** * Sets an id/attributeName pair of type integer. * * @param id unique identifier. * @param attributeName attribute name. * @param value integer value. */ public void setAttribute(String id, String attributeName, int value); /** * Sets an id/attributeName pair of type double. * * @param id unique identifier. * @param attributeName attribute name. * @param value double value. */ public void setAttribute(String id, String attributeName, double value); /** * Sets an id/attributeName pair of type String. * * @param id unique identifier. * @param attributeName attribute name. * @param value string value. */ public void setAttribute(String id, String attributeName, String value); /** * Gets a boolean value at the specified id/attributeName. * <P>If attributeName refers to a List, the zeroeth element in that list is * returned. * * @param id unique identifier. * @param attributeName attribute name. * @return Boolean object, or null if no id/attributeName pair is found. * @throws ClassCastException Indicates that the specified attribute * is not of type Boolean. */ public Boolean getBooleanAttribute(String id, String attributeName) throws ClassCastException; /** * Gets an integer value at the specified id/attributeName. * <P>If attributeName refers to a List, the zeroeth element in that list is * returned. * * @param id unique identifier. * @param attributeName attribute name. * @return Integer object, or null if no id/attributeName pair is found. * @throws ClassCastException Indicates that the specified attribute * is not of type Integer. */ public Integer getIntegerAttribute(String id, String attributeName) throws ClassCastException; /** * Gets a double value at the specified id/attributeName. * <P>If attributeName refers to a List, the zeroeth element in that list is * returned. * * @param id unique identifier. * @param attributeName attribute name. * @return Double object, or null if no id/attributeName pair is found.. * @throws ClassCastException Indicates that the specified attribute * is not of type Double. */ public Double getDoubleAttribute(String id, String attributeName) throws ClassCastException; /** * Gets a String value at the specified id/attributeName. * <P>If attributeName refers to a List, the zeroeth element in that list is * returned. * * @param id unique identifier. * @param attributeName attribute name. * @return String object, or null if no id/attributeName pair is found. * @throws ClassCastException Indicates that the specified attribute * is not of type String. */ public String getStringAttribute(String id, String attributeName) throws ClassCastException; /** * Gets the Class of the specified attribute. * * @param attributeName Attribute Name. * @return Return type will be of type: Boolean, Integer, Double, * String, List or Map. If attributeName has not been * defined, this method will return null. */ public Class getClass(String attributeName); /** * Delete the id/attributeName pair. * * @param id unique identifier. * @param attributeName attribute name. * @return true indicates attribute was * successfully removed. */ public boolean deleteAttribute(String id, String attributeName); /** * Sets a List of Attributes. * <P><B>Note:</B> * <UL> * <LI>All items within the list must be of the same type, * and and chosen from the following list: Boolean, Integer, Double, * or String. * </LI> * </UL> * If the above requirement is not met, an IllegalArgumentException * will be thrown. * * @param id unique identifier. * @param list attribute name. * @param list List Object. */ public void setAttributeList(String id, String attributeName, List list) throws IllegalArgumentException; /** * Gets a List of attributes for the id/attributeName pair. * * @param id unique identifier. * @param attributeName attribute name. * @return List object. * @throws ClassCastException Indicates that the specified attribute * is not of type List. */ public List getAttributeList(String id, String attributeName) throws ClassCastException; /** * Sets a Map of Attribute Values. * <P><B>Note:</B> * <UL> * <LI>All keys within the Map must be of type String. * <LI>All values within the Map must be of the same type, * and chosen from the following list: Boolean, Integer, Double, or String. * </UL> * If the above requirements are not met, an IllegalArgumentException * will be thrown. * * @param id unique identifier. * @param attributeName attribute name. * @param map Map Object. */ public void setAttributeMap(String id, String attributeName, Map map); /** * Gets a Map of Attribute Value. * * @param id unique identifier. * @param attributeName attribute name. * @return Map Object. */ public Map getAttributeMap(String id, String attributeName); /** * Gets the CyData Object, which stores the actual attribute values. * <P>By using CyData and CyDataDefintion directly, you can store * arbitrarily complex data structures. Recommended for advanced * coders only. * * @return CyData Object. */ public CyData getCyData(); /** * Gets the CyDataDefinition Object, which stores attribute definitions. * <P>By using CyData and CyDataDefintion directly, you can store * arbitrarily complex data structures. Recommended for advanced * coders only. * * @return CyDataDefintion Object. */ public CyDataDefinition getCyDataDefinition(); } }}} |
* The interface is now called {{{AttributeData}}}, rather than {{{CytoscapeData}}}. I think this is more descriptive, and besides, not all our classes have to have the word Cytoscape in it. ["RFC1_Class_Name"] |
Cytoscape RFC #1: Replacing Graph Obj Attributes
This is an official Request for Comment (RFC) for replacing GraphObjAttributes.
Status: Version 0.1 of the proposal is below. This represents Ethan's first stab at creating a new API.
How to Comment: To view/add comments, click on any of the links below, and add your comments directly to the Wiki.
General Notes:
The interface is now called AttributeData, rather than CytoscapeData. I think this is more descriptive, and besides, not all our classes have to have the word Cytoscape in it. ["RFC1_Class_Name"]