summaryrefslogtreecommitdiff
path: root/java/src/IceGrid/TreeNode/UpdateFailedException.java
blob: 0027f7a1b2637d9f31e0acdaf2747190b7cb57ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
// **********************************************************************
//
// Copyright (c) 2003-2006 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************
package IceGrid.TreeNode;

import javax.swing.tree.TreePath;

class UpdateFailedException extends Exception
{
    UpdateFailedException(Parent parent, String duplicateName)
    {
	_duplicateName = duplicateName;
	_parentList = new java.util.LinkedList();
	_parentList.addFirst(parent);
    }
    
    UpdateFailedException(String message)
    {
	_message = message;
    }

    void addParent(Parent parent)
    {
	if(_message == null)
	{
	    Parent firstParent = (Parent)_parentList.get(0);
	    if(firstParent != parent && firstParent.getParent() == null)
	    {
		_parentList.addFirst(parent);
	    }
	}
    }    

    public String toString()
    {
	if(_message == null)
	{
	    _message = "";
	    if(_parentList != null)
	    {
		TreePath path = null;

		java.util.Iterator p = _parentList.iterator();
		while(p.hasNext())
		{
		    Parent parent = (Parent)p.next();
		    if(path == null)
		    {
			path = parent.getPath();
			if(path == null)
			{
			    path = new TreePath(parent);
			}
		    }
		    else
		    {
			path = path.pathByAddingChild(parent);
		    }
		}
		
		for(int i = 1; i < path.getPathCount(); ++i)
		{
		    if(!_message.equals(""))
		    {
			_message += "/";
		    }
		    _message += ((CommonBase)path.getPathComponent(i)).getId();
		}
	    }
	    else
	    {
		_message = "???";
	    }
	    _message += " cannot have two children named " + _duplicateName;
	}
	return _message; 
    }
    
    private String _message;
    private String _duplicateName;
    private java.util.LinkedList _parentList;
}