Author: slotia
Date: 2012-08-31 16:55:06 -0700 (Fri, 31 Aug 2012)
New Revision: 30309

Modified:
   
core3/api/trunk/model-api/src/main/java/org/cytoscape/model/CyTableManager.java
Log:
Updated javadocs for CyTableManager

Modified: 
core3/api/trunk/model-api/src/main/java/org/cytoscape/model/CyTableManager.java
===================================================================
--- 
core3/api/trunk/model-api/src/main/java/org/cytoscape/model/CyTableManager.java 
    2012-08-31 23:12:20 UTC (rev 30308)
+++ 
core3/api/trunk/model-api/src/main/java/org/cytoscape/model/CyTableManager.java 
    2012-08-31 23:55:06 UTC (rev 30309)
@@ -32,8 +32,52 @@
 
 
 /** 
- * A singleton object that provides access to the available
- * tables in the system. Should be provided as an OSGi service.
+ * A singleton object for managing registered {@link CyTable}s.
+ *
+ * <p>
+ * When a {@link CyTable} is created through a {@link CyTableFactory},
+ * it exists independently from the rest of Cytoscape.
+ * However, when a {@code CyTable} is registered through the {@code 
CyTableManager},
+ * {@code CyTableManager} does the following things for the {@code CyTable}:
+ * <ul>
+ *  <li>
+ *   It fires the {@link org.cytoscape.model.events.TableAddedEvent}
+ *   to inform other parts of Cytoscape that the {@code CyTable} was added
+ *   to the {@code CyTableManager}.
+ *  </li>
+ *  <li>
+ *   It also makes the {@code CyTable} available to other parts of
+ *   Cytoscape through methods like {@link #getAllTables}.
+ *  </li>
+ *  <li>
+ *   Because registering the {@code CyTable} notifies Cytoscape about
+ *   the {@code CyTable}, Cytoscape will ensure that the {@code CyTable}
+ *   is saved (see {@link CyTable#setSavePolicy}). If the {@code CyTable}
+ *   is not registered with the {@code CyTableManager}, it will not
+ *   be saved according to its {@link SavePolicy}.
+ *  </li>
+ * </ul>
+ * </p>
+ *
+ * <p>
+ * This interface, unfortunately, uses <i>very</i> confusing method names. 
Here is an explanation.
+ * <ul>
+ * <li>
+ * <i>Associated</i> {@code CyTable}s are explicitly mapped to 
+ * {@link CyNetwork}, {@link CyNode}s, or {@link CyEdge}s through the
+ * {@link CyNetworkTableManager}.
+ * Associated {@code CyTable}s are obtained through {@link #getLocalTables}.
+ * </li>
+ * <li>
+ * <i>Unassociated</i> {@code CyTable}s are <i>not</i> explicitly mapped to 
+ * network objects. Note that columns in an unassociated table can still be 
"mapped"
+ * to network objects when an associated table has a virtual column
+ * from an unassociated table.
+ * Unassigned tables are obtained from {@link #getGlobalTables}.
+ * </li>
+ * </ul>
+ * </p>
+ *
  * @CyAPI.Api.Interface
  */
 public interface CyTableManager {
@@ -75,14 +119,22 @@
        
        /**
         * Returns a set of all global tables.
+     * "Global tables" are tables that are not explicitly mapped to
+     * {@link CyNetwork}s, {@link CyNode}s, and {@link CyEdge}s.
+     * through {@link CyNetworkTableManager}.
+     *
         * @return All registered global tables
         */
        Set<CyTable> getGlobalTables();
        
        /**
-        * Returns set of all local tabses for the given data type.
+        * Returns set of all local tables for the given data type.
+     * "Local tables" are tables that are explicitly mapped to {@link 
CyNetwork}s,
+     * {@link CyNode}s, and {@link CyEdge}s.
+     * This method has <i>nothing</i> to do with {@link CyNetwork#LOCAL_ATTRS}.
         * 
-        * @param type Type of the graph object, i.e., node, edge or network.
+        * @param type Type of the network object, i.e., {@code 
CyNetwork.class},
+     * {@code CyNode.class}, or {@code CyEdge.class}.
         * 
         * @return Set of all registered tables associated with the given data 
type.
         */

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to