gov.sandia.cognition.text.term.AbstractTermIndex Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cognitive-foundry Show documentation
Show all versions of cognitive-foundry Show documentation
A single jar with all the Cognitive Foundry components.
/*
* File: AbstractTermIndex.java
* Authors: Justin Basilico
* Company: Sandia National Laboratories
* Project: Cognitive Foundry
*
* Copyright February 08, 2010, Sandia Corporation.
* Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
* license for use of this work by or on behalf of the U.S. Government. Export
* of this program may require a license from the United States Government.
* See CopyrightHistory.txt for complete details.
*
*/
package gov.sandia.cognition.text.term;
import gov.sandia.cognition.util.AbstractCloneableSerializable;
import gov.sandia.cognition.util.ObjectUtil;
/**
* An abstract implementation of the {@code TermIndex} class that handles a lot
* of the convenience method implementations.
*
* @author Justin Basilico
* @since 3.0
*/
public abstract class AbstractTermIndex
extends AbstractCloneableSerializable
implements TermIndex
{
/**
* Creates a new {@code AbstractTermIndex}.
*/
public AbstractTermIndex()
{
super();
}
public IndexedTerm getIndexedTerm(
final Termable termable)
{
return this.getIndexedTerm(termable.asTerm());
}
public boolean hasIndexedTerm(
final IndexedTerm indexedTerm)
{
return indexedTerm != null
&& this.hasIndex(indexedTerm.getIndex())
&& ObjectUtil.equalsSafe(indexedTerm.getTerm(),
this.getTerm(indexedTerm.getIndex()));
}
public boolean hasTerm(
final Termable termable)
{
return this.hasTerm(termable.asTerm());
}
public boolean hasTerm(
final Term term)
{
// See if the term is in the term map.
return this.getIndexedTerm(term) != null;
}
public boolean hasIndex(
final int index)
{
return index >= 0 && index < this.getTermCount();
}
public int getIndex(
final Termable termable)
{
return this.getIndex(termable.asTerm());
}
public int getIndex(
final Term term)
{
// Get the index of the term.
final IndexedTerm result = this.getIndexedTerm(term);
if (result == null)
{
// Not in the map.
return -1;
}
else
{
// In the map.
return result.getIndex();
}
}
public Term getTerm(
final int index)
{
final IndexedTerm indexedTerm = this.getIndexedTerm(index);
if (indexedTerm == null)
{
return null;
}
else
{
return indexedTerm.asTerm();
}
}
public IndexedTerm add(
final Termable termable)
{
return this.add(termable.asTerm());
}
public void addAll(
final Iterable extends Termable> terms)
{
for (Termable termable : terms)
{
this.add(termable);
}
}
}