Author: jm
Date: 2011-07-19 14:00:43 -0700 (Tue, 19 Jul 2011)
New Revision: 26214

Modified:
   
core3/model-api/trunk/src/main/java/org/cytoscape/model/VirtualColumnInfo.java
   
core3/model-impl/trunk/impl/src/main/java/org/cytoscape/model/internal/CyTableImpl.java
   
core3/model-impl/trunk/impl/src/main/java/org/cytoscape/model/internal/VirtualColumnInfoImpl.java
Log:
Added isImmutable field to VIrtualColumnInfo to keep track of initial column 
mutability

Modified: 
core3/model-api/trunk/src/main/java/org/cytoscape/model/VirtualColumnInfo.java
===================================================================
--- 
core3/model-api/trunk/src/main/java/org/cytoscape/model/VirtualColumnInfo.java  
    2011-07-19 20:28:57 UTC (rev 26213)
+++ 
core3/model-api/trunk/src/main/java/org/cytoscape/model/VirtualColumnInfo.java  
    2011-07-19 21:00:43 UTC (rev 26214)
@@ -24,8 +24,13 @@
        
        /**
         * Returns the originating table for this column if this column is 
virtual.
-        * @return the actual table that this column originates at if it is 
virtual, or null if the
-        *         column is not virtual
         */
        CyTable getSourceTable();
+
+       /**
+        * Returns true if this virtual column was originally created
+        * immutable.
+        * @return
+        */
+       boolean isImmutable();
 }

Modified: 
core3/model-impl/trunk/impl/src/main/java/org/cytoscape/model/internal/CyTableImpl.java
===================================================================
--- 
core3/model-impl/trunk/impl/src/main/java/org/cytoscape/model/internal/CyTableImpl.java
     2011-07-19 20:28:57 UTC (rev 26213)
+++ 
core3/model-impl/trunk/impl/src/main/java/org/cytoscape/model/internal/CyTableImpl.java
     2011-07-19 21:00:43 UTC (rev 26214)
@@ -110,7 +110,7 @@
                rows = new HashMap<Object, CyRow>();
                types = new HashMap<String, CyColumn>();
 
-               VirtualColumnInfo virtualInfo = new 
VirtualColumnInfoImpl(false, null, null, null, null);
+               VirtualColumnInfo virtualInfo = new 
VirtualColumnInfoImpl(false, null, null, null, null, true);
                // Create the primary key column.  Do this explicitly
                // so that we don't fire an event.
                types.put(primaryKey, new CyColumnImpl(this, primaryKey, 
primaryKeyType,
@@ -288,7 +288,7 @@
 
                        checkClass(type);
 
-                       VirtualColumnInfo virtualInfo = new 
VirtualColumnInfoImpl(false, null, null, null, null);
+                       VirtualColumnInfo virtualInfo = new 
VirtualColumnInfoImpl(false, null, null, null, null, isImmutable);
                        types.put(columnName, new CyColumnImpl(this, 
columnName, type,
                                                               /* 
listElementType = */ null,
                                                               virtualInfo ,
@@ -319,7 +319,7 @@
 
                        checkClass(listElementType);
 
-                       VirtualColumnInfo virtualInfo = new 
VirtualColumnInfoImpl(false, null, null, null, null);
+                       VirtualColumnInfo virtualInfo = new 
VirtualColumnInfoImpl(false, null, null, null, null, isImmutable);
                        types.put(columnName, new CyColumnImpl(this, 
columnName, List.class,
                                                               listElementType,
                                                               virtualInfo,
@@ -789,7 +789,7 @@
                                throw new 
IllegalArgumentException("\"sourceJoinKey\" has a different type from 
\"targetJoinKey\"!");
 
                        
++((CyTableImpl)sourceTable).virtualColumnReferenceCount;
-                       VirtualColumnInfo virtualInfo = new 
VirtualColumnInfoImpl(true, sourceTable, sourceColumnName, sourceJoinKeyName, 
targetJoinKeyName);
+                       VirtualColumnInfo virtualInfo = new 
VirtualColumnInfoImpl(true, sourceTable, sourceColumnName, sourceJoinKeyName, 
targetJoinKeyName, isImmutable);
                        final CyColumn targetColumn =
                                new CyColumnImpl(this, virtualColumnName, 
sourceColumn.getType(),
                                                 
sourceColumn.getListElementType(),

Modified: 
core3/model-impl/trunk/impl/src/main/java/org/cytoscape/model/internal/VirtualColumnInfoImpl.java
===================================================================
--- 
core3/model-impl/trunk/impl/src/main/java/org/cytoscape/model/internal/VirtualColumnInfoImpl.java
   2011-07-19 20:28:57 UTC (rev 26213)
+++ 
core3/model-impl/trunk/impl/src/main/java/org/cytoscape/model/internal/VirtualColumnInfoImpl.java
   2011-07-19 21:00:43 UTC (rev 26214)
@@ -10,13 +10,15 @@
        private final String sourceColumn;
        private final String sourceJoinKey;
        private final String targetJoinKey;
+       private final boolean isImmutable;
 
-       public VirtualColumnInfoImpl(boolean isVirtual, CyTable sourceTable, 
String sourceColumn, String sourceJoinKey, String targetJoinKey) {
+       public VirtualColumnInfoImpl(boolean isVirtual, CyTable sourceTable, 
String sourceColumn, String sourceJoinKey, String targetJoinKey, boolean 
isImmutable) {
                this.isVirtual = isVirtual;
                this.sourceTable = sourceTable;
                this.sourceColumn = sourceColumn;
                this.sourceJoinKey = sourceJoinKey;
                this.targetJoinKey = targetJoinKey;
+               this.isImmutable = isImmutable;
        }
        
        @Override
@@ -44,4 +46,8 @@
                return sourceTable;
        }
 
+       @Override
+       public boolean isImmutable() {
+               return isImmutable;
+       }
 }

-- 
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