com.facetmap
Interface Facet

All Known Subinterfaces:
Spectrum, Taxonomy
All Known Implementing Classes:
SimpleTaxonomy

public interface Facet

The high abstraction of a dimension in the FacetSpace.

In most parlances, this structure is called a facet. For clarity, we define the Facet as a group of attributes that are mutually exclusive with regard to a given Resource. In other words, a resource is always bound to each Facet structure, but a resource is only bound to one Heading within each Facet structure.

All Facets are rooted; see getRootHeading() for details.

Facet structures are not directed in the formal sense (in which a link between nodes must be one-way), but links between Headings must address the concept of directionality by having a forward and backward direction. This corresponds to, say, the directions in a user clickpath -- "forward" means the user is making progress through a navigation, and "backward" means the user is backing up in some way. But "backing up" along this facet graph doesn't necessarily mean the user is choosing a previously visited Selection, because the other Facets may affect the new Selection.

A Facet may be in more than one FacetSpace instance at a time. Because of differences in implementation, it's unlikely to be in two classes of FacetSpace at once. When operating on a Facet in the context of some FacetSpace, it's best to supply the FacetSpace separately.


Method Summary
 void doAddToFacetSpace()
          Contains any custom processing that must be done when this structure is added to a FacetSpace.
 Heading getHeading(java.lang.String id)
          Retrieves the Heading, with the specified ID, that is contained by this Facet.
 java.lang.String getId()
          Unique identifier.
 Heading getRootHeading()
          A facet structure is rooted at the heading returned by this method.
 java.lang.String getTitle()
          The descriptive name of this structure, for display to users.
 void setTitle(java.lang.String title)
           
 

Method Detail

getId

public java.lang.String getId()
Unique identifier.


getTitle

public java.lang.String getTitle()
The descriptive name of this structure, for display to users.


setTitle

public void setTitle(java.lang.String title)

getHeading

public Heading getHeading(java.lang.String id)
                   throws UnknownReferenceException
Retrieves the Heading, with the specified ID, that is contained by this Facet. If the facet doesn't recognize the ID, it will throw UnknownReferenceException.

Throws:
UnknownReferenceException

getRootHeading

public Heading getRootHeading()
A facet structure is rooted at the heading returned by this method. The root is only necessary to provide a starting point for navigation through this structure; the root will be one of the headings in the default Selection, and it must have no backward for the purposes of Selection.getBackwardSelections(). In some subinterfaces, the root takes on a more familiar role, e.g. the root node of a Taxonomy.

See Also:
Selection.getForwardSelections(int)

doAddToFacetSpace

public void doAddToFacetSpace()
Contains any custom processing that must be done when this structure is added to a FacetSpace. This method should be called after the Facet is added to the FacetSpace.