Environment for
DeveLoping
KDD-Applications
Supported by Index-Structures

de.lmu.ifi.dbs.elki.data.cluster
Class SimpleHierarchy<C extends HierarchyInterface<C>>

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.data.cluster.SimpleHierarchy<C>
Type Parameters:
C - Object type
All Implemented Interfaces:
HierarchyImplementation<C>

public class SimpleHierarchy<C extends HierarchyInterface<C>>
extends Object
implements HierarchyImplementation<C>

Hierarchy implementation with a per-object representation.

Author:
Erich Schubert

Field Summary
private  List<C> children
          Storage for children
private  C owner
          Owner
private  List<C> parents
          Storage for parents
 
Constructor Summary
SimpleHierarchy(C owner, List<C> children, List<C> parents)
          Constructor for hierarchy object.
 
Method Summary
<T extends Collection<C>>
T
getAncestors(C self, T collection)
          Collect ancestors.
 List<C> getChildren(C self)
          Return children
<T extends Collection<C>>
T
getDescendants(C self, T collection)
          Collect descendants.
 List<C> getParents(C self)
          Return parents
 boolean isHierarchical()
          Return that this model is hierarchical.
 int numChildren(C self)
          Return number of children.
 int numParents(C self)
          Return number of parents
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

owner

private C extends HierarchyInterface<C> owner
Owner


children

private List<C extends HierarchyInterface<C>> children
Storage for children


parents

private List<C extends HierarchyInterface<C>> parents
Storage for parents

Constructor Detail

SimpleHierarchy

public SimpleHierarchy(C owner,
                       List<C> children,
                       List<C> parents)
Constructor for hierarchy object.

Parameters:
owner - owning cluster.
children - child clusters. May be null.
parents - parent clusters. May be null.
Method Detail

isHierarchical

public final boolean isHierarchical()
Return that this model is hierarchical.

Specified by:
isHierarchical in interface HierarchyImplementation<C extends HierarchyInterface<C>>
Returns:
hierarchical data model.

numChildren

public int numChildren(C self)
Return number of children.

Specified by:
numChildren in interface HierarchyImplementation<C extends HierarchyInterface<C>>
Parameters:
self - object to get number of children for
Returns:
number of children

getChildren

public List<C> getChildren(C self)
Return children

Specified by:
getChildren in interface HierarchyImplementation<C extends HierarchyInterface<C>>
Parameters:
self - object to get children for
Returns:
list of children

getDescendants

public <T extends Collection<C>> T getDescendants(C self,
                                                  T collection)
Collect descendants.

Specified by:
getDescendants in interface HierarchyImplementation<C extends HierarchyInterface<C>>
Type Parameters:
T - Collection type
Parameters:
self - object to get descendants for
collection - Collection to fill
Returns:
collection of descendants

numParents

public int numParents(C self)
Return number of parents

Specified by:
numParents in interface HierarchyImplementation<C extends HierarchyInterface<C>>
Parameters:
self - reference object
Returns:
number of parents

getParents

public List<C> getParents(C self)
Return parents

Specified by:
getParents in interface HierarchyImplementation<C extends HierarchyInterface<C>>
Parameters:
self - object to get parents for
Returns:
list of parents

getAncestors

public <T extends Collection<C>> T getAncestors(C self,
                                                T collection)
Collect ancestors.

Specified by:
getAncestors in interface HierarchyImplementation<C extends HierarchyInterface<C>>
Type Parameters:
T - Collection type
Parameters:
self - object to get anchestors for
collection - Collection to fill
Returns:
collection of ancestors

Release 0.3 (2010-03-31_1612)