/**
         * Called when a column is inserted on the specified sheet.  Notifies all
         * RCIR cells of this change
         *
         * @param s the sheet on which the column was inserted
         * @param col the column number which was inserted
         */
        public virtual void columnInserted(WritableSheetImpl s, int col)
        {
            int externalSheetIndex = getExternalSheetIndex(s.getName());
            foreach (CellValue cv in rcirCells)
                cv.columnInserted(s, externalSheetIndex, col);

            // Adjust any named cells
            if (names != null)
                {
                foreach (NameRecord nameRecord in names)
                    nameRecord.columnInserted(externalSheetIndex, col);
                }
        }
        /**
         * Called when a column is removed on the specified sheet.  Notifies all
         * RCIR cells of this change
         *
         * @param s the sheet on which the column was removed
         * @param col the column number which was removed
         */
        public virtual void columnRemoved(WritableSheetImpl s, int col)
        {
            int externalSheetIndex = getExternalSheetIndex(s.getName());
            foreach (CellValue cv in rcirCells)
                cv.columnRemoved(s, externalSheetIndex, col);

            // Adjust any named cells
            ArrayList removedNames = new ArrayList();
            if (names != null)
                {
                foreach (NameRecord nameRecord in names)
                    {
                    bool removeName = nameRecord.columnRemoved(externalSheetIndex,col);

                    if (removeName)
                        removedNames.Add(nameRecord);
                    }

                // Remove any names which have been deleted
                foreach (NameRecord nameRecord in removedNames)
                    names.Remove(nameRecord);
                }
        }
        /**
         * Called when a row is inserted on the specified sheet.  Notifies all
         * RCIR cells of this change
         *
         * @param s the sheet on which the row was inserted
         * @param row the row number which was inserted
         */
        public virtual void rowInserted(WritableSheetImpl s, int row)
        {
            int externalSheetIndex = getExternalSheetIndex(s.getName());

            // Adjust the row infos
            foreach (CellValue cv in rcirCells)
                cv.rowInserted(s, externalSheetIndex, row);

            // Adjust any named cells
            if (names != null)
                {
                foreach (NameRecord nameRecord in names)
                    nameRecord.rowInserted(externalSheetIndex, row);
                }
        }