net.ontopia.topicmaps.utils
Class NameGrabber

java.lang.Object
  extended by net.ontopia.topicmaps.utils.NameGrabber
All Implemented Interfaces:
GrabberIF

public class NameGrabber
extends java.lang.Object
implements GrabberIF

INTERNAL: Grabber that grabs the most suitable name from a topic, measured by whether it contains a particular theme in its scope. If the topic has a variant name with the given theme the belonging basename will be chosen. If not, the base name in the least constrained scope will be chosen.

Since:
1.1

Constructor Summary
NameGrabber(java.util.Collection scope)
          INTERNAL: Creates the grabber and sets the comparator to be a ScopedIFComparator using the specified scope.
NameGrabber(java.util.Collection basenameScope, java.util.Collection variantScope)
          INTERNAL: Creates the grabber and sets the comparator to be a ScopedIFComparator using the specified scope.
NameGrabber(java.util.Collection basenameScope, java.util.Collection variantScope, boolean grabOnlyTopicName)
          INTERNAL: Creates the grabber and sets the comparator to be a ScopedIFComparator using the specified scope.
NameGrabber(LocatorIF themeIndicator)
          INTERNAL: Creates the grabber and sets the comparator to be a ScopedIFComparator using the least constrained scope.
NameGrabber(LocatorIF themeIndicator, boolean variant)
          PUBLIC: Creates the grabber and sets the comparator to be a ScopedIFComparator using the least constrained scope.
 
Method Summary
 boolean getGrabOnlyTopicName()
          INTERNAL: Gets the grab policy.
 java.lang.Object grab(java.lang.Object object)
          INTERNAL: Grabs the most appropiate base name (or if grabOnlyTopicName is false allow also to return the most appropiate VariantIF instance).
 void setGrabOnlyTopicName(boolean grabOnlyTopicName)
          INTERNAL: Sets the grab policy, if only instances of BasenameIF should be returned by grab, or also the more appropiate VariantIF.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NameGrabber

public NameGrabber(LocatorIF themeIndicator)
INTERNAL: Creates the grabber and sets the comparator to be a ScopedIFComparator using the least constrained scope. Grabs names that have the topic defined by the given PSI locator in their scope. By default the theme is used in the variant scope.


NameGrabber

public NameGrabber(LocatorIF themeIndicator,
                   boolean variant)
PUBLIC: Creates the grabber and sets the comparator to be a ScopedIFComparator using the least constrained scope. Grabs names that have the topic defined by the given PSI locator in their scope.

Parameters:
variant - Whether to use the indicator to set the variant scope (if false it is used for the base name scope)
Since:
2.0

NameGrabber

public NameGrabber(java.util.Collection scope)
INTERNAL: Creates the grabber and sets the comparator to be a ScopedIFComparator using the specified scope. Grabs names that have most in common with specified scope.

Since:
1.1.2

NameGrabber

public NameGrabber(java.util.Collection basenameScope,
                   java.util.Collection variantScope)
INTERNAL: Creates the grabber and sets the comparator to be a ScopedIFComparator using the specified scope. Grabs base names that have most in common with specified scope.

Since:
1.2.1

NameGrabber

public NameGrabber(java.util.Collection basenameScope,
                   java.util.Collection variantScope,
                   boolean grabOnlyTopicName)
INTERNAL: Creates the grabber and sets the comparator to be a ScopedIFComparator using the specified scope. Grabs names (basename or variant, use grabOnlyTopicName to specify the policy) that have most in common with specified scope.

Since:
1.2.2
Method Detail

setGrabOnlyTopicName

public void setGrabOnlyTopicName(boolean grabOnlyTopicName)
INTERNAL: Sets the grab policy, if only instances of BasenameIF should be returned by grab, or also the more appropiate VariantIF.

Since:
1.2.2

getGrabOnlyTopicName

public boolean getGrabOnlyTopicName()
INTERNAL: Gets the grab policy.

Since:
1.2.2
See Also:
setGrabOnlyTopicName(boolean)

grab

public java.lang.Object grab(java.lang.Object object)
INTERNAL: Grabs the most appropiate base name (or if grabOnlyTopicName is false allow also to return the most appropiate VariantIF instance). The name returned is the first suitable base name belonging to a variant name found, when the basenames of the give topic have been sorted using the comparator. If there is no suitable base name belonging to a variant name, then the last base name found is returned, corresponding to the least constrained scope.

Specified by:
grab in interface GrabberIF
Parameters:
object - The topic whose name is being grabbed; formally an object.
Returns:
A name to display; an object implementing TopicNameIF (or VariantNameIF, see above) or null if the topic has no basenames.
Throws:
throws - OntopiaRuntimeException if object is not a topic.


Copyright © 2000-2010 Ontopia.