|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
java.lang.Object | +--javax.swing.tree.DefaultTreeModel
TreeNodes ¸¦ »ç¿ëÇÏ´Â °£´ÜÇÑ Æ®¸® µ¥ÀÌÅÍ ¸ðµ¨ÀÔ´Ï´Ù. DefaultTreeModel ÀÇ »ó¼¼ ¹× »ç¿ë¿¹´Â ¡¸The Java Tutorial¡¹ÀÇ¡¸How to Use Trees¡¹¼½¼ÇÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
°æ°í:
ÀÌ Å¬·¡½ºÀÇ Á÷·ÄÈ µÈ ¿ÀºêÁ§Æ®´Â ÇâÈÄÀÇ Swing ÀÇ ¸±¸®½º¿Í´Â ȣȯ¼ºÀ» °¡ÁöÁö ¾Ê½À´Ï´Ù. ÇöÀçÀÇ Á÷·ÄÈ ¼Æ÷Æ®´Â ´Ü±â°£ÀÇ ¿î¿ëÀ̳ª, °°Àº ¹öÁ¯ÀÇ Swing ¸¦ ½ÇÇàÇÏ´Â ¾îÇø®ÄÉÀ̼ǰ£ÀÇ RMI ¿¡ ÀûÀýÇϰí ÀÖ½À´Ï´Ù. 1.4 ¿¡¼´Â ¸ðµç JavaBeansTM ÀÇ Àå±â ¿î¿ë ¼Æ÷Æ®°¡, java.beans
ÆÐŰÁö¿¡ Ãß°¡µÇ¾ú½À´Ï´Ù. XMLEncoder
¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
ÇʵåÀÇ °³¿ä | |
protected boolean |
asksAllowsChildren
³ëµå°¡ ÀÙ³ëµåÀΰ¡ ¾î¶²°¡¸¦ isLeaf ¸Þ¼Òµå°¡ ÆÇ´ÜÇÏ´Â ¹æ¹ýÀ» °áÁ¤ÇÕ´Ï´Ù. |
protected EventListenerList |
listenerList
ûÃëÀÚÀÔ´Ï´Ù. |
protected TreeNode |
root
Æ®¸®ÀÇ ·çÆ®ÀÔ´Ï´Ù. |
»ý¼ºÀÚÀÇ °³¿ä | |
DefaultTreeModel (TreeNode root)
¾î´À ³ëµå¿¡¼µµ ¾ÆÀ̸¦ ÀαⰡ ÀÖ´Â Æ®¸®¸¦ ÀÛ¼ºÇÕ´Ï´Ù. |
|
DefaultTreeModel (TreeNode root,
boolean asksAllowsChildren)
¾î´À ³ëµå¿¡¼µµ ¾ÆÀ̸¦ ÀαⰡ ÀÖÀ»Áö ¾î¶³Áö ƯÁ¤ÀÇ ³ëµå¸¸ÀÌ ¾ÆÀ̸¦ ÀαⰡ ÀÖÀ»Áö ¾î¶³Áö¸¦ ÁöÁ¤ÇÏ´Â Æ®¸®¸¦ ÀÛ¼ºÇÕ´Ï´Ù. |
¸Þ¼ÒµåÀÇ °³¿ä | |
void |
addTreeModelListener (TreeModelListener l)
Æ®¸®°¡ º¯°æµÈ µÚ¿¡ ¼Û½ÅµÈ TreeModelEvent ÀÇ Ã»ÃëÀÚ¸¦ Ãß°¡ÇÕ´Ï´Ù. |
boolean |
asksAllowsChildren ()
ÀÙ³ëµåÀÇ ÆÇº° ¹æ¹ýÀ» ÅëÁöÇÕ´Ï´Ù. |
protected void |
fireTreeNodesChanged (Object source,
Object [] path,
int[] childIndices,
Object [] children)
ÀÌ À̺¥Æ® ŸÀÔÀÇ ÅëÁö¸¦ Àü´Þ ´ë»óÀ¸·Î ÇØ µî·ÏÇϰí Àִ ûÃëÀÚ ¸ðµÎ¿¡°Ô ÅëÁöÇÕ´Ï´Ù. |
protected void |
fireTreeNodesInserted (Object source,
Object [] path,
int[] childIndices,
Object [] children)
ÀÌ À̺¥Æ® ŸÀÔÀÇ ÅëÁö¸¦ Àü´Þ ´ë»óÀ¸·Î ÇØ µî·ÏÇϰí Àִ ûÃëÀÚ ¸ðµÎ¿¡°Ô ÅëÁöÇÕ´Ï´Ù. |
protected void |
fireTreeNodesRemoved (Object source,
Object [] path,
int[] childIndices,
Object [] children)
ÀÌ À̺¥Æ® ŸÀÔÀÇ ÅëÁö¸¦ Àü´Þ ´ë»óÀ¸·Î ÇØ µî·ÏÇϰí Àִ ûÃëÀÚ ¸ðµÎ¿¡°Ô ÅëÁöÇÕ´Ï´Ù. |
protected void |
fireTreeStructureChanged (Object source,
Object [] path,
int[] childIndices,
Object [] children)
ÀÌ À̺¥Æ® ŸÀÔÀÇ ÅëÁö¸¦ Àü´Þ ´ë»óÀ¸·Î ÇØ µî·ÏÇϰí Àִ ûÃëÀÚ ¸ðµÎ¿¡°Ô ÅëÁöÇÕ´Ï´Ù. |
Object |
getChild (Object parent,
int index)
ºÎ¸ð°¡ °¡Áö´Â ¾ÆÀÌ ¹è¿ÀÇ, À妽º index ¿¡ ÀÖ´Â parent ÀÇ ¾ÆÀ̸¦ µ¹·ÁÁÝ´Ï´Ù. |
int |
getChildCount (Object parent)
parent ÀÇ ¾ÆÀÌÀÇ ¼ö¸¦ µ¹·ÁÁÝ´Ï´Ù. |
int |
getIndexOfChild (Object parent,
Object child)
ºÎ¸ð¿¡ ÀÖ¾î¼ÀÇ ¾ÆÀÌÀÇ À妽º¸¦ µ¹·ÁÁÝ´Ï´Ù. |
EventListener [] |
getListeners (Class listenerType)
ÀÌ ¸ðµ¨»ó¿¡¼ FooListener ·Î¼ ÇöÀç µî·ÏµÇ¾î ÀÖ´Â ¸ðµç ¿ÀºêÁ§Æ®·ÎºÎÅÍ µÇ´Â ¹è¿À» µ¹·ÁÁÝ´Ï´Ù. |
TreeNode [] |
getPathToRoot (TreeNode aNode)
·çÆ® ³ëµå±îÁö¸¦ Æ÷ÇÔÇÑ ³ëµåÀÇ ºÎ¸ð¸¦ ±¸ÃàÇÕ´Ï´Ù. |
protected TreeNode [] |
getPathToRoot (TreeNode aNode,
int depth)
·çÆ® ³ëµå±îÁö¸¦ Æ÷ÇÔÇÑ ³ëµåÀÇ ºÎ¸ð¸¦ ±¸ÃàÇÕ´Ï´Ù. |
Object |
getRoot ()
Æ®¸®ÀÇ ·çÆ®¸¦ µ¹·ÁÁÝ´Ï´Ù. |
TreeModelListener [] |
getTreeModelListeners ()
ÀÌ ¸ðµ¨¿¡ µî·ÏµÈ, ¸ðµç Æ®¸® ¸ðµ¨ ûÃëÀڷκÎÅÍ µÇ´Â ¹è¿À» µ¹·ÁÁÝ´Ï´Ù. |
void |
insertNodeInto (MutableTreeNode newChild,
MutableTreeNode parent,
int index)
ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇØ, ºÎ¸ðÀÇ ¾ÆÀ̵éÀÇ À§Ä¡ À妽º¿¡ newChild ¸¦ »ðÀÔÇÕ´Ï´Ù. |
boolean |
isLeaf (Object node)
ÁöÁ¤ÀÇ ³ëµå°¡ ÀÙ³ëµåÀΰ¡ ¾î¶²°¡¸¦ µ¹·ÁÁÝ´Ï´Ù. |
void |
nodeChanged (TreeNode node)
À¯Àú°¡ Æ®¸®³»ÀÇ ³ëµåÀÇ Ç¥Çö ¹æ¹ýÀ» º¯°æÇÑ ÈÄ¿¡, ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. |
void |
nodesChanged (TreeNode node,
int[] childIndices)
childIndicies ·Î ½Äº°µÇ´Â ¾ÆÀ̸¦ Æ®¸®³»¿¡¼ Ç¥ÇöÇÏ´Â ¹æ¹ýÀ» À¯Àú°¡ º¯°æÇÑ ÈÄ¿¡, ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. |
void |
nodeStructureChanged (TreeNode node)
³ëµåÀÇ ¾ÆÀÌ, ±× ¾ÆÀÌÀÇ ¾ÆÀÌ ... |
void |
nodesWereInserted (TreeNode node,
int[] childIndices)
À¯Àú°¡ ¸î°³ÀÇ TreeNode ¸¦ ³ëµå¿¡ »ðÀÔÇÑ ÈÄ¿¡ ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. |
void |
nodesWereRemoved (TreeNode node,
int[] childIndices,
Object [] removedChildren)
À¯Àú°¡ ¸î°³ÀÇ TreeNode ¸¦ ³ëµå·ÎºÎÅÍ »èÁ¦ÇÑ ÈÄ¿¡ ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. |
void |
reload ()
À¯Àú°¡ ÀÌ ¸ðµ¨ÀÇ ÀÇÁ¸ÇÏ´Â TreeNode ¸¦ º¯°æÇßÀ» °æ¿ì¿¡, ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. |
void |
reload (TreeNode node)
À¯Àú°¡ ÀÌ ¸ðµ¨ÀÇ ÀÇÁ¸ÇÏ´Â TreeNode ¸¦ º¯°æÇßÀ» °æ¿ì, ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. |
void |
removeNodeFromParent (MutableTreeNode node)
ÀÌ ¸Þ¼Òµå¸¦ ¸Þ¼¼Áö·Î¼ º¸³», ³ëµå¸¦ ±× ºÎ¸ð·ÎºÎÅÍ »èÁ¦ÇÕ´Ï´Ù. |
void |
removeTreeModelListener (TreeModelListener l)
±×¶§±îÁö addTreeModelListener() ·Î Ãß°¡µÇ°í ÀÖ´ø ûÃëÀÚ¸¦ »èÁ¦ÇÕ´Ï´Ù. |
void |
setAsksAllowsChildren (boolean newValue)
TreeNode ¿¡ getAllowsChildren() ¶Ç´Â isLeaf()·Î ¹®ÀÇÇÏ´Â °ÍÀ¸·Î, ÀÙÀΰ¡ ¾î¶²°¡ÀÇ ÆÇÁ¤À» ÇÒ±î ÇÏÁö ¾Ê´Â°¡¸¦ ¼³Á¤ÇÕ´Ï´Ù. |
void |
setRoot (TreeNode root)
·çÆ®¸¦ root ·Î ¼³Á¤ÇÕ´Ï´Ù. |
void |
valueForPathChanged (TreePath path,
Object newValue)
ÆÐ½º·Î ½Äº°µÇ´Â TreeNode ÀÇ À¯Àú ¿ÀºêÁ§Æ®¸¦ ¼³Á¤ÇØ, º¯°æ ³¡³ ³ëµå¸¦ º¸³À´Ï´Ù. |
Ŭ·¡½º java.lang. Object ¿¡¼ »ó¼Ó¹ÞÀº ¸Þ¼Òµå |
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
ÇʵåÀÇ »ó¼¼ |
protected TreeNode root
protected EventListenerList listenerList
protected boolean asksAllowsChildren
isLeaf
¸Þ¼Òµå°¡ ÆÇ´ÜÇÏ´Â ¹æ¹ýÀ» °áÁ¤ÇÕ´Ï´Ù. true ÀÇ °æ¿ì, ³ëµå°¡ ¾ÆÀ̸¦ Çã°¡ÇÏÁö ¾ÊÀ¸¸é ÀÙ³ëµåÀÔ´Ï´Ù. ¾ÆÀ̸¦ Çã°¡ÇÏ´Â °æ¿ì´Â ¾ÆÀ̰¡ Á¸ÀçÇÏÁö ¾Ê¾Æµµ ÀÙ³ëµå°¡ ¾Æ´Õ´Ï´Ù. À̰ÍÀ¸·Î, ¿¹¸¦ µé¾î ÆÄÀÏ ½Ã½ºÅÛÀÇ ¡¸Æú´õ ³ëµå¡¹¿Í¡¸ÆÄÀÏ ³ëµå¡¹¸¦ ±¸º°ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ °ªÀÌ false ÀÇ °æ¿ì´Â ¾ÆÀ̸¦ °¡ÁöÁö ¾Ê´Â ³ëµå´Â ÀÙ³ëµå·Î, ¾î´À ³ëµå¿¡¼µµ ¾ÆÀ̸¦ °¡Áú ¼ö°¡ ÀÖ½À´Ï´Ù.
TreeNode.getAllowsChildren()
,
TreeModel.isLeaf(java.lang.Object)
,
setAsksAllowsChildren(boolean)
»ý¼ºÀÚÀÇ »ó¼¼ |
public DefaultTreeModel(TreeNode root)
root
- Æ®¸®ÀÇ ·çÆ®ÀÎ TreeNode ¿ÀºêÁ§Æ®DefaultTreeModel(TreeNode, boolean)
public DefaultTreeModel(TreeNode root, boolean asksAllowsChildren)
root
- Æ®¸®ÀÇ ·çÆ®ÀÎ TreeNode ¿ÀºêÁ§Æ®asksAllowsChildren
¸Þ¼ÒµåÀÇ »ó¼¼ |
public void setAsksAllowsChildren(boolean newValue)
public boolean asksAllowsChildren()
asksAllowsChildren
public void setRoot(TreeNode root)
root
·Î ¼³Á¤ÇÕ´Ï´Ù. null ÀÇ root
´Â Æ®¸®¿¡´Â ¾Æ¹«°Íµµ Ç¥½ÃµÇÁö ¾Ê°í ÇÑÆí ÀûÁ¤ÀÎ °ÍÀ» ÀǹÌÇÕ´Ï´Ù.
public Object getRoot()
TreeModel
³»ÀÇ getRoot
public int getIndexOfChild(Object parent, Object child)
null
ÀÇ °æ¿ì´Â -1 À» µ¹·ÁÁÝ´Ï´Ù.
TreeModel
³»ÀÇ getIndexOfChild
parent
- ÀÌ µ¥ÀÌÅÍ ¼Ò½º·ÎºÎÅÍ ÃëµæµÈ, Æ®¸®³»ÀÇ ³ëµåchild
- ´ë»óÀÌ µÇ´Â ³ëµå
null
ÀÇ °æ¿ì´Â -1public Object getChild(Object parent, int index)
TreeModel
³»ÀÇ getChild
parent
- ÀÌ µ¥ÀÌÅÍ ¼Ò½º·ÎºÎÅÍ ÃëµæµÈ, Æ®¸®³»ÀÇ ³ëµå
public int getChildCount(Object parent)
TreeModel
³»ÀÇ getChildCount
parent
- ÀÌ µ¥ÀÌÅÍ ¼Ò½º·ÎºÎÅÍ ÃëµæµÈ, Æ®¸®³»ÀÇ ³ëµå
public boolean isLeaf(Object node)
askAllowsChildren
ÀÇ ¼³Á¤¿¡ ÀÇÁ¸ÇÕ´Ï´Ù.
TreeModel
³»ÀÇ isLeaf
node
- üũ ´ë»óÀÇ ³ëµå
asksAllowsChildren
,
TreeModel.isLeaf(java.lang.Object)
public void reload()
public void valueForPathChanged(TreePath path, Object newValue)
TreeModel
³»ÀÇ valueForPathChanged
path
- À¯Àú°¡ º¯°æÇÑ ³ëµå¿¡ÀÇ ÆÐ½ºnewValue
- TreeCellEditor ·ÎºÎÅÍÀÇ »õ·Î¿î °ªpublic void insertNodeInto(MutableTreeNode newChild, MutableTreeNode parent, int index)
public void removeNodeFromParent(MutableTreeNode node)
public void nodeChanged(TreeNode node)
public void reload(TreeNode node)
node
º¸´Ù ¾Æ·¡ÀÇ ºÎºÐ¿¡¼ º¯°æµÈ °ÍÀ», ±× ûÃëÀÚÀÇ ¸ðµÎ¿¡°Ô ÅëÁöÇÕ´Ï´Ù.
public void nodesWereInserted(TreeNode node, int[] childIndices)
public void nodesWereRemoved(TreeNode node, int[] childIndices, Object [] removedChildren)
public void nodesChanged(TreeNode node, int[] childIndices)
public void nodeStructureChanged(TreeNode node)
public TreeNode [] getPathToRoot(TreeNode aNode)
aNode
- ÆÐ½º¸¦ ÃëµæÇÏ´Â TreeNodeprotected TreeNode [] getPathToRoot(TreeNode aNode, int depth)
aNode
- ÆÐ½º¸¦ ÃëµæÇÏ´Â TreeNodedepth
- µ¹·ÁÁÖ¾îÁö´Â ¹è¿ÀÇ »çÀÌÁî ÁöÁ¤¿¡ »ç¿ëÇÑ´Ù, (Àç±Í È£Ãâ·Î) ¹ú½á Ãëµæ ³¡³ ·çÆ®±îÁöÀÇ ½ºÅܼö¸¦ ³ªÅ¸³»´Â int Ä¡
public void addTreeModelListener(TreeModelListener l)
TreeModel
³»ÀÇ addTreeModelListener
l
- Ãß°¡Çϴ ûÃëÀÚremoveTreeModelListener(javax.swing.event.TreeModelListener)
public void removeTreeModelListener(TreeModelListener l)
TreeModel
³»ÀÇ removeTreeModelListener
l
- »èÁ¦Çϴ ûÃëÀÚaddTreeModelListener(javax.swing.event.TreeModelListener)
public TreeModelListener [] getTreeModelListeners()
TreeModelListener
. Æ®¸® ¸ðµ¨ ûÃëÀÚ°¡ µî·ÏµÇÁö ¾ÊÀº °æ¿ì´Â ÇÏ´ÃÀÇ ¹è¿addTreeModelListener(javax.swing.event.TreeModelListener)
,
removeTreeModelListener(javax.swing.event.TreeModelListener)
protected void fireTreeNodesChanged(Object source, Object [] path, int[] childIndices, Object [] children)
source
- º¯°æµÇ´Â ³ëµåpath
- ·çÆ® ³ëµå¿¡ÀÇ ÆÐ½ºchildren
- º¯°æµÈ ¿ä¼ÒEventListenerList
protected void fireTreeNodesInserted(Object source, Object [] path, int[] childIndices, Object [] children)
source
- »õ·Î¿î ¿ä¼Ò°¡ »ðÀԵǴ ³ëµåpath
- ·çÆ® ³ëµå¿¡ÀÇ ÆÐ½ºchildren
- ½Å±Ô ¿ä¼ÒEventListenerList
protected void fireTreeNodesRemoved(Object source, Object [] path, int[] childIndices, Object [] children)
source
- ¿ä¼Ò°¡ »èÁ¦µÇ´Â ³ëµåpath
- ·çÆ® ³ëµå¿¡ÀÇ ÆÐ½ºchildren
- »èÁ¦µÈ ¿ä¼ÒEventListenerList
protected void fireTreeStructureChanged(Object source, Object [] path, int[] childIndices, Object [] children)
source
- Æ®¸® ¸ðµ¨ÀÌ º¯°æµÈ ³ëµåpath
- ·çÆ® ³ëµå¿¡ÀÇ ÆÐ½ºchildren
- ¿µÇâÀ» ¹Þ´Â ¿ä¼ÒEventListenerList
public EventListener [] getListeners(Class listenerType)
FooListener
·Î¼ ÇöÀç µî·ÏµÇ¾î ÀÖ´Â ¸ðµç ¿ÀºêÁ§Æ®·ÎºÎÅÍ µÇ´Â ¹è¿À» µ¹·ÁÁÝ´Ï´Ù. FooListener
ÀÇ µî·Ï¿¡´Â addFooListener
¸Þ¼Òµå°¡ »ç¿ëµË´Ï´Ù.
FooListener.class
µîÀÇ Å¬·¡½º ¸®ÅÍ·²À» »ç¿ëÇØ,listenerType
Àμö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ÀÌÇÏÀÇ Äڵ带 »ç¿ëÇØ,DefaultTreeModel
m
¸¦, ±× Æ®¸® ¸ðµ¨ ûÃëÀÚ¿¡°Ô Á¶È¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.
TreeModelListener[] tmls = (TreeModelListener[])(m.getListeners(TreeModelListener.class));ÀÌ·± Á¾·ùÀÇ Ã»ÃëÀÚ°¡ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì, ÀÌ ¸Þ¼Òµå¿¡¼´Â ÇÏ´ÃÀÇ ¹è¿ÀÌ µ¹·ÁÁÖ¾îÁý´Ï´Ù.
listenerType
- ¿ä±¸µÇ´Â ûÃëÀÚÀÇ Å¸ÀÔ. ÀÌ ÆÄ¶ó¹ÌÅÍ´Â java.util.EventListener
·ÎºÎÅÍ ÆÄ»ýÇÏ´Â ÀÎÅÍÆäÀ̽º¸¦ ÁöÁ¤ÇÑ´Ù
FooListener
·Î¼ µî·ÏµÈ ¸ðµç ¿ÀºêÁ§Æ®·ÎºÎÅÍ µÇ´Â ¹è¿. ÀÌ·± Á¾·ùÀÇ Ã»ÃëÀÚ°¡ Ãß°¡µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì´Â ÇÏ´ÃÀÇ ¹è¿
ClassCastException
- listenerType
·Î java.util.EventListener
¸¦ ±¸ÇöÇϴ Ŭ·¡½º³ª ÀÎÅÍÆäÀ̽º¸¦ ÁöÁ¤ÇÏÁö ¾Ê´Â °æ¿ìgetTreeModelListeners()
|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
Java, Java 2 D, ¹× JDBC ´Â ¹Ì±¹ ¹× ±× ¿ÜÀÇ ³ª¶ó¿¡ ÀÖ¾î¼ÀÇ ¹Ì±¹ Sun Microsystems, Inc. ÀÇ »óÇ¥ ȤÀº µî·Ï»óÇ¥ÀÔ´Ï´Ù.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.