Mercurial > hg > Members > shoshi > TreeCMSv2
comparison src/treecms/memory/OnMemoryMonotonicTreeNode.java @ 13:c8601b0fa8a3
added Predicate and PredicateList
author | shoshi |
---|---|
date | Wed, 11 May 2011 22:08:20 +0900 |
parents | fbbb7e414346 |
children | 8bf59f161b23 |
comparison
equal
deleted
inserted
replaced
12:fbbb7e414346 | 13:c8601b0fa8a3 |
---|---|
117 m_node.clear(); | 117 m_node.clear(); |
118 } | 118 } |
119 | 119 |
120 /** | 120 /** |
121 * このMonotonicNodeに変更が加えられたら,こちらのメソッドが呼び出されます. | 121 * このMonotonicNodeに変更が加えられたら,こちらのメソッドが呼び出されます. |
122 * このメソッドでは非破壊的に変更するために,SingleLinkedNodeのクローンを作成し, | 122 * 非破壊的に変更するために,SingleLinkedNodeのクローンを作成し,親にも複製を依頼します. |
123 * 親にも複製を依頼します. | |
124 * | 123 * |
125 * RootNodeまで伝搬すると親のNodeはnullとなる.親Nodeは担当するMonotonicTreeのオブジェクトを保持しており,そこにRootNodeが変更されたことを通知する. | 124 * RootNodeまで伝搬すると親のNodeはnullとなる.親Nodeは担当するMonotonicTreeのオブジェクトを保持しており,そこにRootNodeが変更されたことを通知する. |
126 * 通知が終わり,処理が戻ってきた時に自身のOnMemoryNodeをクローンした新しいものに書き換えます. | 125 * 通知が終わり,処理が戻ってきた時に自身のOnMemoryNodeをクローンした新しいものに書き換えます. |
127 * | 126 * |
128 * _fromがnullの場合は,自身が編集元であることを示します. | 127 * _fromがnullの場合は,自身が編集元であることを示します. |
129 * @param _from 編集元のOnMemoryMonotonicTreeNode | 128 * @param _from 編集元のOnMemoryMonotonicTreeNode |
130 */ | 129 */ |
131 public void cloneAndTransmit(OnMemoryNode _from) | 130 public void transmit(OnMemoryNode _from) |
132 { | 131 { |
133 OnMemoryNode clone = m_node.cloneNode(); | 132 Node clone = m_node.cloneNode(null); |
134 if(m_parent != null){ | 133 m_node.removeChild(_from); |
135 //親が存在する,親に変更があったことを伝搬する. | |
136 m_parent.cloneAndTransmit(clone); | |
137 }else{ | |
138 //何かすることはないかな | |
139 } | |
140 | |
141 //編集終了 | |
142 m_node = clone; | |
143 } | 134 } |
144 | 135 |
145 /* | 136 /* |
146 * 子供関連のメソッド | 137 * 子供関連のメソッド |
147 */ | 138 */ |