Log4j 0.9.1

org.log4j
Class Hierarchy

java.lang.Object
  |
  +--org.log4j.Hierarchy

public class Hierarchy
extends Object

This class is specialized in retreiving categories by name and also maintaining the category hierarchy.

The casual user should never have to deal with this class. In fact, up until version 0.9.0, this class had default package access.

The structure of the category hierachy is maintained by the getInstance(java.lang.String) method. The hierrachy is such that children link to their parent but parents do not have any pointers to their children. Moreover, user may choose to instantiate a categories in any order, in particular decendant before ancestor.

In case child is created before its parent, then it creates a provision node for the parent and adds itself to the provision node. Other children of the same parent only add themselves if there is already a provision node for the parent.

See the code below for further details.

Author:
Ceki Gulcu (cgu@urbanet.ch)

Constructor Summary
Hierarchy(Category root)
          Create a new Category hierarchy.
 
Method Summary
 void clear()
          This call will clear all category definitions from the internal hashtable.
 Category exists(String name)
          Check if the named category exists in the hirarchy.
static Hierarchy getDefaultHierarchy()
          Return the default Hierarchy instance.
 Category getInstance(String name)
          Return a new category instance named as the first parameter using the default factory.
 Category getInstance(String name, CategoryFactory factory)
          Return a new category instance named as the first parameter using factory.
 Category getRoot()
          Get the root of this hierarchy.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Hierarchy

public Hierarchy(Category root)
Create a new Category hierarchy.
Parameters:
root - The root of the new hierarchy.
Method Detail

clear

public void clear()
This call will clear all category definitions from the internal hashtable. Invoking this method renders impossible the addition of new categories to the hiearchy.

You should really know what you are doing before invoking this method.

Since:
0.9.0

exists

public Category exists(String name)
Check if the named category exists in the hirarchy. If so return its reference, otherwise returns null.
Parameters:
name - The name of the category to search for.

getInstance

public Category getInstance(String name)
Return a new category instance named as the first parameter using the default factory.

If a category of that name already exists, then it will be returned. Otherwise, a new category will be instantiated and lthen inked with its existing ancestors as well as children.

Parameters:
name - The name of the category to retreive.

getInstance

public Category getInstance(String name,
                            CategoryFactory factory)
Return a new category instance named as the first parameter using factory.

If a category of that name already exists, then it will be returned. Otherwise, a new category will be instantiated by the factory parameter and linked with its existing ancestors as well as children.

Parameters:
name - The name of the category to retreive.
factory - The factory that will make the new category instance.

getDefaultHierarchy

public static Hierarchy getDefaultHierarchy()
Return the default Hierarchy instance.
Since:
0.9.0

getRoot

public Category getRoot()
Get the root of this hierarchy.
Since:
0.9.0

Log4j 0.9.1

Please notify me about new log4j releases.