graph BT
	Type-->Base0["Object"]
	Type-.->Interface0["IShallowClone"]
	click Interface0 "/db4o-gpl-doc/output/api/Db4objects.Db4o.Foundation/IShallowClone"
	Type-.->Interface1["IDeepClone"]
	click Interface1 "/db4o-gpl-doc/output/api/Db4objects.Db4o.Foundation/IDeepClone"
	Type-.->Interface2["IVisitable"]
	click Interface2 "/db4o-gpl-doc/output/api/Db4objects.Db4o.Foundation/IVisitable"
	Type["Tree"]
class Type type-node
	Derived0["TreeInt"]-->Type
	click Derived0 "/db4o-gpl-doc/output/api/Db4objects.Db4o.Internal/TreeInt"
	Derived1["QPending"]-->Type
	click Derived1 "/db4o-gpl-doc/output/api/Db4objects.Db4o.Internal.Query.Processor/QPending"
	Derived2["TreeObject"]-->Type
	click Derived2 "/db4o-gpl-doc/output/api/Db4objects.Db4o.Foundation/TreeObject"
						
					 
				 
  			 
		 
	Syntax
	public abstract class Tree : IShallowClone, IDeepClone, IVisitable
			Fields
			
		
			Methods
			
				
					
						
							
								| Name | Value | Summary | 
						
							
								| Accept(IVisitor4) | void |  | 
							
								| Add(Tree, int) | Tree | 
    On adding a node to a tree, if it already exists, and if
    Tree#duplicates() returns false, #isDuplicateOf() will be
    called.
     | 
							
								| Add(Tree, Tree) | Tree | static | 
							
								| Add(Tree) | Tree |  | 
							
								| AddedOrExisting() | Tree | 
    On adding a node to a tree, if it already exists, and if
    Tree#duplicates() returns false, #onAttemptToAddDuplicate()
    will be called and the existing node will be stored in
    this._preceding.
     | 
							
								| Balance() | Tree |  | 
							
								| BalanceCheckNulls() | Tree |  | 
							
								| CalculateSize() | void |  | 
							
								| Compare(Tree) | int | 
    returns 0, if keys are equal
    uses this - other
    returns positive if this is greater than a_to
    returns negative if this is smaller than a_to
     | 
							
								| DeepClone(Object) | Object |  | 
							
								| DeepClone(Tree, Object) | Tree | static | 
							
								| Depth(Tree) | int | static | 
							
								| Duplicates() | bool |  | 
							
								| Filter(IPredicate4) | Tree |  | 
							
								| Find(Tree, Tree) | Tree | static | 
							
								| Find(Tree) | Tree |  | 
							
								| FindGreaterOrEqual(Tree, Tree) | Tree | static | 
							
								| FindSmaller(Tree, Tree) | Tree | static | 
							
								| First() | Tree |  | 
							
								| Key() | Object |  | 
							
								| Last() | Tree |  | 
							
								| Last(Tree) | Tree | static | 
							
								| Nodes() | int |  | 
							
								| OnAttemptToAddDuplicate(Tree) | Tree |  | 
							
								| OwnSize() | int |  | 
							
								| Remove() | Tree |  | 
							
								| RemoveChildren() | void |  | 
							
								| RemoveFirst() | Tree |  | 
							
								| RemoveLike(Tree, Tree) | Tree | static | 
							
								| RemoveLike(Tree) | Tree |  | 
							
								| RemoveNode(Tree) | Tree |  | 
							
								| Root() | Object |  | 
							
								| RotateLeft() | Tree |  | 
							
								| RotateRight() | Tree |  | 
							
								| SetSizeOwn() | void |  | 
							
								| SetSizeOwnPlus(Tree, Tree) | void |  | 
							
								| SetSizeOwnPlus(Tree) | void |  | 
							
								| SetSizeOwnPreceding() | void |  | 
							
								| SetSizeOwnPrecedingSubsequent() | void |  | 
							
								| SetSizeOwnSubsequent() | void |  | 
							
								| ShallowClone() | Object |  | 
							
								| ShallowCloneInternal(Tree) | Tree |  | 
							
								| Size() | int |  | 
							
								| Size(Tree) | int | static | 
							
								| Traverse(IVisitor4) | void |  | 
							
								| Traverse(Tree, IVisitor4) | void | static | 
							
								| Traverse(Tree, Tree, ICancellableVisitor4) | void | Traverses a tree with a starting point node. static | 
							
								| TraverseFromLeaves(IVisitor4) | void |  | 
							
								| WasAddedToTree() | bool |  |