|
Cytoscape 2.6.2 (c) 2006,2007 ISB, MSKCC, UCSD | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface CyAttributes
CyAttributes provides access to network, node, and edge attributes within Cytoscape.
CyAttributes is a replacement for GraphObjAttributes
, which will be
officially removed from the Cytoscape core in September, 2006.
getIdentifier()
method:
CyNetwork.getIdentifier()
.
CyNode.getIdentifier()
.
CyEdge.getIdentifier()
.
MultiHashMap
data structure,
which restricts attribute values to four data types: Boolean
,
Integer
, Double
, and String
. It does
not store arbitrary Java Objects. We do this for three reasons:
Boolean
, Integer
, Double
,
String
cyAttributes.setAttribute (node.getIdentifier(), "Rank", new Integer(3)); Integer value = cyAttributes.getIntegerAttribute (node.getIdentifier(), "Rank");
Boolean
, Integer
,
Double
or String
.
Integer
Objects is a simple
list, whereas a mix of two Integer
and one Boolean
Object is not.
The following code snippet illustrates how to set a simple list of three
Integer
Objects:
ArrayList list = new ArrayList(); list.add (new Integer(1)); list.add (new Integer(22)); list.add (new Integer(5)); cyAttributes.setList (node.getIdentifier(), "Rank List", list).At run-time, the
setList
method will check that all items in
the list are of the same type, and are chosen from the following list:
Boolean
, Integer
, Double
or String
. If these criteria are not met, an
IllegalArgumentException
will be thrown.
To get a simple list, use the
getListAttribute(String, String)
method.
String
.
Boolean
, Integer
,
Double
or String
.
Integer
values
is a simple map, whereas a map that contains two Integer
values and one Boolean
value is not.
The following code snippet illustrates how to set a simple map
of three String
Objects:
Map map = new HashMap(); map.put("name", "Reactome"); map.put("url", "http://www.reactome.org"); map.put("description", "Reactome - a knowledgebase of " + "biological processes"); cyAttributes.setMapAttribute(node.getIdentifier(), "external_db", map);To get a simple map, use the
getMapAttribute(String, String)
method.
Integer
:
cyAttributes.setAttribute (node.getIdentifier(), "Rank", new Integer(3));Later on, Plugin 2 executes the following code:
cyAttributes.setAttribute (node.getIdentifier(), "Rank", new String("Three"));We are now attempting to set "RANK" to a String value, but "RANK" is already fixed as an
Integer
data type. Hence, the call is considered
invalid, and an IllegalArgumentException
will be thrown.
The same situation can occur with simple lists and simple maps. For example,
if PlugIn 1 defines a simple list of all Integer
values, and
PlugIn 2 attempts to re-use this attribute with a list of Double
values, the call is considered invalid, and an
IllegalArgumentException
will be thrown.
To prevent this type of problem, use
getType(String)
to determine the attribute's data
type before setting any new attributes.
To reset an attribute's data type, use
deleteAttribute(String)
. Note that calling this method
will delete all attributes with this name, preparing the way for a clean
slate. Please use with caution!
MultiHashMap
data structure
to store attributes. This data structure enables you to store arbitrarily
complex trees of data, but restricts the tree to Objects of type:
Boolean
, Integer
, Double
or
String
.
If you wish to store arbitarily complex data structures (e.g. anything
more complicated than a simple list or a simple map), you can do so by
obtaining the MultiHashMap via getMultiHashMap()
,
and getMultiHashMapDefinition()
,
and working on the data structure directly. Complete information is
available in the MultiHashMap
javadocs.
MultiHashMap
data structure to store attributes. To listen to attribute events,
first obtain the MultiHashMap via getMultiHashMap()
,
and then register a listener via
MultiHashMap.addDataListener(cytoscape.data.attr.MultiHashMapListener)
.
Note that calls to
setListAttribute(String, String, java.util.List)
and
setMapAttribute(String, String, java.util.Map)
result in many calls to the MultiHashMap object. For example, if you have
five elements in a List, the implementation code makes five calls to
the MultiHashMap, and you will therefore be notified of five separate
events, rather than one global list event.
setAttributeDescription(String, String)
method.
To retrieve an attribute description, use the
getAttributeDescription(String)
method.
Starting in Cytoscape 2.4, you can also flag attributes as visible / hidden or editable / non-editable by the end user. User interface elements use these attribute flags to determine user interactivity. For example, the default attribute browser will hide all attributes marked as hidden, and will restrict users to edit only those attributes marked as editable. By default, all attributes are visible and editable. Therefore, you only need to interact with this portion of the API if you want to specifically hide certain attributes or mark certain attributes as non-editable.
To set an attribute as invisible, use the
setUserVisible(String, boolean)
method and set
to false.
To set an attribute as non-editable, use the
setUserEditable(String, boolean)
method
and set to false.
Note: CyAttributes does not enforce these user interfaction flags. Rather, relevant user interface (UI) element(s) must query CyAttributes, and enforce the interaction flags themselves.
Field Summary | |
---|---|
static byte |
TYPE_BOOLEAN
This type corresponds to java.lang.Boolean. |
static byte |
TYPE_COMPLEX
This type corresponds to a data structure of arbitrary complexity, e.g. anything more complex than a 'simple' list or a 'simple' map. |
static byte |
TYPE_FLOATING
This type corresponds to java.lang.Double. |
static byte |
TYPE_INTEGER
This type corresponds to java.lang.Integer. |
static byte |
TYPE_SIMPLE_LIST
This type corresponds to a 'simple' list. |
static byte |
TYPE_SIMPLE_MAP
This type corresponds to a 'simple' hash map. |
static byte |
TYPE_STRING
This type corresponds to java.lang.String. |
static byte |
TYPE_UNDEFINED
This type corresponds to an attribute which has not been defined. |
Method Summary | |
---|---|
boolean |
deleteAttribute(String attributeName)
Deletes the specified attribute. |
boolean |
deleteAttribute(String id,
String attributeName)
Deletes the id/attributeName pair. |
Object |
getAttribute(String id,
String attributeName)
Gets an Object value at the specified id/attributeName. |
String |
getAttributeDescription(String attributeName)
Gets the human readable description of a specific attribute. |
List |
getAttributeList(String id,
String attributeName)
Deprecated. Use getListAttribute() instead. Will be removed 11/2007. |
Map |
getAttributeMap(String id,
String attributeName)
Deprecated. Use getMapAttribute() instead. Will be removed 11/2007. |
String[] |
getAttributeNames()
Gets an array of all attribute names. |
Boolean |
getBooleanAttribute(String id,
String attributeName)
Gets a Boolean value at the specified id/attributeName. |
Double |
getDoubleAttribute(String id,
String attributeName)
Gets a Double value at the specified id/attributeName. |
Integer |
getIntegerAttribute(String id,
String attributeName)
Gets an Integer value at the specified id/attributeName. |
List |
getListAttribute(String id,
String attributeName)
Gets a 'simple' list of attributes for the id/attributeName pair. |
Map |
getMapAttribute(String id,
String attributeName)
Gets a 'simple' map of attribute values. |
MultiHashMap |
getMultiHashMap()
Gets the MultiHashMap Object, where we store attribute values. |
MultiHashMapDefinition |
getMultiHashMapDefinition()
Gets the MultiHashMapDefinition Object, where we store attribute definitions. |
String |
getStringAttribute(String id,
String attributeName)
Gets a String value at the specified id/attributeName. |
byte |
getType(String attributeName)
Gets the data type of the specified attribute. |
boolean |
getUserEditable(String attributeName)
Returns the boolean indicating whether this attribute should be editable by the end user or not. |
boolean |
getUserVisible(String attributeName)
Returns the boolean indicating whether the specified attribute should be made visible to the end user or not. |
boolean |
hasAttribute(String id,
String attributeName)
Determines if the specified id/attributeName pair exists. |
void |
setAttribute(String id,
String attributeName,
Boolean value)
Sets an id/attributeName pair of type Boolean. |
void |
setAttribute(String id,
String attributeName,
Double value)
Sets an id/attributeName pair of type Double. |
void |
setAttribute(String id,
String attributeName,
Integer value)
Sets an id/attributeName pair of type Integer. |
void |
setAttribute(String id,
String attributeName,
String value)
Sets an id/attributeName pair of type String. |
void |
setAttributeDescription(String attributeName,
String description)
Sets a human readable description of a specific attribute. |
void |
setAttributeList(String id,
String attributeName,
List list)
Deprecated. Use setListAttribute() instead. Will be removed 11/2007. |
void |
setAttributeMap(String id,
String attributeName,
Map map)
Deprecated. Use setMapAttribute() instead. Will be removed 11/2007. |
void |
setListAttribute(String id,
String attributeName,
List list)
Sets a simple list of attributes. |
void |
setMapAttribute(String id,
String attributeName,
Map map)
Sets a 'simple' map of attribute values. |
void |
setUserEditable(String attributeName,
boolean value)
Sets the specified boolean to indicate whether or not the specified attribute should be editable by the end user. |
void |
setUserVisible(String attributeName,
boolean value)
Sets the specified boolean to indicate whether or not the specified attribute should be made visible to the end user. |
Field Detail |
---|
static final byte TYPE_BOOLEAN
static final byte TYPE_FLOATING
static final byte TYPE_INTEGER
static final byte TYPE_STRING
static final byte TYPE_SIMPLE_LIST
A 'simple' list is defined as follows:
Boolean
, Integer
,
Double
or String
.
static final byte TYPE_SIMPLE_MAP
A 'simple' map is defined as follows:
String
.
Boolean
, Integer
,
Double
or String
.
static final byte TYPE_COMPLEX
For complete details, refer to the class comments, or
getMultiHashMap()
.
static final byte TYPE_UNDEFINED
Method Detail |
---|
String[] getAttributeNames()
void setAttributeDescription(String attributeName, String description)
attributeName
- attribute name.description
- human readable description of attribute.
used for display to end-user.String getAttributeDescription(String attributeName)
attributeName
- attribute name.
void setUserVisible(String attributeName, boolean value)
By default, all attributes are visible.
Note: CyAttributes does not actually enforce user visibility. Rather, relevant user interface (UI) element(s) must query CyAttributes, and enforce the visibility flag themselves.
attributeName
- Attribute name.value
- the boolean to be set. true indicates that the attribute
should be made visible to the end user. false indicates that the
attribute should not be made visible to the end user.boolean getUserVisible(String attributeName)
By default, all attributes are visible.
Note: CyAttributes does not actually enforce user visibility. Rather, relevant user interface (UI) element(s) must query CyAttributes, and enforce the visibility flag themselves.
attributeName
- Attribute name.
void setUserEditable(String attributeName, boolean value)
By default, all attributes are editable.
Note: CyAttributes does not actually enforce restrictions on user editing of attributes. Rather, relevant user interface (UI) element(s) must query CyAttributes, and enforce the editing requirements themselves.
attributeName
- Attribute name.value
- the boolean to be set. true indicates that the attribute
should be editable by the end user. false indicates that the attribute
should not be editable by the end user.boolean getUserEditable(String attributeName)
By default, all attributes are editable.
Note: CyAttributes does not actually enforce restrictions on user editing of attributes. Rather, relevant user interface (UI) element(s) must query CyAttributes, and enforce the editing requirements themselves.
attributeName
- Attribute name.
boolean hasAttribute(String id, String attributeName)
id
- unique identifier.attributeName
- attribute name.
void setAttribute(String id, String attributeName, Boolean value) throws IllegalArgumentException
id
- unique identifier.attributeName
- attribute name.value
- boolean value.
IllegalArgumentException
- Indicates that this attribute has
already been defined with a data type,
and this data type is not of type:
TYPE_BOOLEAN.void setAttribute(String id, String attributeName, Integer value) throws IllegalArgumentException
id
- unique identifier.attributeName
- attribute name.value
- integer value.
IllegalArgumentException
- Indicates that this attribute has
already been defined with a data type,
and this data type is not of type:
TYPE_INTEGER.void setAttribute(String id, String attributeName, Double value) throws IllegalArgumentException
id
- unique identifier.attributeName
- attribute name.value
- double value.
IllegalArgumentException
- Indicates that this attribute has
already been defined with a data type,
and this data type is not of type:
TYPE_FLOATING.void setAttribute(String id, String attributeName, String value) throws IllegalArgumentException
id
- unique identifier.attributeName
- attribute name.value
- string value.
IllegalArgumentException
- Indicates that this attribute has
already been defined with a data type,
and this data type is not of type:
TYPE_STRING.Boolean getBooleanAttribute(String id, String attributeName) throws ClassCastException
id
- unique identifier.attributeName
- attribute name.
ClassCastException
- Indicates that the specified attribute
is not of type: TYPE_BOOLEAN.Integer getIntegerAttribute(String id, String attributeName) throws ClassCastException
id
- unique identifier.attributeName
- attribute name.
ClassCastException
- Indicates that the specified attribute
is not of type: TYPE_INTEGER.Double getDoubleAttribute(String id, String attributeName) throws ClassCastException
id
- unique identifier.attributeName
- attribute name.
ClassCastException
- Indicates that the specified attribute
is not of type: TYPE_FLOATING.String getStringAttribute(String id, String attributeName) throws ClassCastException
id
- unique identifier.attributeName
- attribute name.
ClassCastException
- Indicates that the specified attribute
is not of type: TYPE_STRING.Object getAttribute(String id, String attributeName)
id
- unique identifier.attributeName
- attribute name.
byte getType(String attributeName)
attributeName
- Attribute Name.
boolean deleteAttribute(String id, String attributeName)
id
- unique identifier.attributeName
- attribute name.
boolean deleteAttribute(String attributeName)
Calling this method deletes all id/attributeName pairs with this attributeName, and resets the specified attribute data type to: TYPE_UNDEFINED. Please use with caution!
attributeName
- attribute name.
void setAttributeList(String id, String attributeName, List list) throws IllegalArgumentException
setListAttribute()
instead. Will be removed 11/2007.
IllegalArgumentException
void setListAttribute(String id, String attributeName, List list) throws IllegalArgumentException
A simple list is defined as follows:
Boolean
, Integer
,
Double
or String
.
If the above requirements are not met, an IllegalArgumentException will be thrown.
Implementation note: calling this method results in many calls to the MultiHashMap back-end data store. For example, if you have five elements in a List, the implementation code makes five calls to the MultiHashMap. Therefore, if you are listening to MultiHashMap events, you will be notified of five separate events, rather than one global list event.
id
- unique identifier.list
- attribute name.list
- List Object.
IllegalArgumentException
- Simple List requirements have not
been met, or this attribute has already
been defined with a data type, and this
data type is not of type:
TYPE_SIMPLE_LIST.List getAttributeList(String id, String attributeName) throws ClassCastException
getListAttribute()
instead. Will be removed 11/2007.
ClassCastException
List getListAttribute(String id, String attributeName) throws ClassCastException
A 'simple' list is defined as follows:
Boolean
, Integer
,
Double
or String
.
Note: The returned List is useful for read operations only. If you add, edit, or delete elements within this list, these changes will not be stored, unless you explicitly call setListAttribute() again. For example:
List list = nodeAttributes.getListAttribute(id, attributeName); // Add new item list.add(new String("Hello, World"); // Save modified list back nodeAttributes.setListAttribute(id, attributeName, list);
id
- unique identifier.attributeName
- attribute name.
ClassCastException
- Indicates that the specified attribute
is not of type: TYPE_SIMPLE_LIST.void setAttributeMap(String id, String attributeName, Map map) throws IllegalArgumentException
setMapAttribute()
instead. Will be removed 11/2007.
IllegalArgumentException
void setMapAttribute(String id, String attributeName, Map map) throws IllegalArgumentException
A 'simple' map is defined as follows:
Boolean
, Integer
,
Double
or String
.
If the above requirements are not met, an
IllegalArgumentException
will be thrown.
Implementation note: calling this method results in many calls to the MultiHashMap back-end data store. For example, if you have five elements in a Map, the implementation code makes five calls to the MultiHashMap. Therefore, if you are listening to MultiHashMap events, you will be notified of five separate events, rather than one global map event.
id
- unique identifier.attributeName
- attribute name.map
- Map Object.
IllegalArgumentException
- Simple Map requirements have not
been met or this attribute has already
been defined with a data type, and this
data type is not of type:
TYPE_SIMPLE_MAP.Map getAttributeMap(String id, String attributeName)
getMapAttribute()
instead. Will be removed 11/2007.
Map getMapAttribute(String id, String attributeName)
A 'simple' map is defined as follows:
Boolean
, Integer
,
Double
or String
.
Note: The returned Map is useful for read operations only. If you add, edit, or delete elements within this Map, these changes will not be stored, unless you explicitly call setMapAttribute() again. For example:
Map map = nodeAttributes.getMapAttribute(id, attributeName); // Add new item map.put(new String("Message"), new String("Hello, World")); // Save modified map back nodeAttributes.setMapAttribute(id, attributeName, map);
id
- unique identifier.attributeName
- attribute name.
ClassCastException
- Indicates that the specified attribute
is not of type: TYPE_HASH_MAP.MultiHashMap getMultiHashMap()
By using MultiHashMap and MultiHashMapDefinition directly, you can store arbitrarily complex data structures. Recommended for advanced coders only.
MultiHashMapDefinition getMultiHashMapDefinition()
By using MultiHashMap and MultiHashMapDefinition directly, you can store arbitrarily complex data structures (e.g. anything more complicated that 'simple' lists and 'simple' maps). Recommended for advanced coders only.
|
www.cytoscape.org | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |