org.apache.lucene.facet.index.attributes
Class CategoryAttributeImpl

java.lang.Object
  extended by org.apache.lucene.util.AttributeImpl
      extended by org.apache.lucene.facet.index.attributes.CategoryAttributeImpl
All Implemented Interfaces:
Serializable, Cloneable, CategoryAttribute, Attribute

public final class CategoryAttributeImpl
extends AttributeImpl
implements CategoryAttribute

An implementation of CategoryAttribute.

See Also:
Serialized Form
WARNING: This API is experimental and might change in incompatible ways in the next release.

Field Summary
protected  CategoryPath categoryPath
          The category path instance.
protected  HashMap<Class<? extends CategoryProperty>,CategoryProperty> properties
          A map of properties associated to the current category path.
 
Fields inherited from class org.apache.lucene.util.AttributeImpl
enableBackwards
 
Constructor Summary
CategoryAttributeImpl()
          Construct an empty CategoryAttributeImpl.
CategoryAttributeImpl(CategoryPath categoryPath)
          Construct a CategoryAttributeImpl with the given CategoryPath.
 
Method Summary
 void addProperty(CategoryProperty property)
          Add a property.
 void clear()
          Clears the values in this AttributeImpl and resets it to its default value.
 void clearProperties()
          Clear all properties.
 CategoryAttribute clone()
          Shallow clone.
 void copyTo(AttributeImpl target)
          Copies the values from this Attribute into the passed-in target attribute.
 boolean equals(Object o)
           
 CategoryPath getCategoryPath()
          Returns the category path value.
 CategoryProperty getProperty(Class<? extends CategoryProperty> propertyClass)
          Get a property of a certain property class.
 CategoryProperty getProperty(Collection<Class<? extends CategoryProperty>> propertyClasses)
          Get a property of one of given property classes.
 Set<Class<? extends CategoryProperty>> getPropertyClasses()
          Get all the active property classes.
 int hashCode()
           
 void remove(Class<? extends CategoryProperty> propertyClass)
          Remove an property of a certain property class.
 void set(CategoryAttribute other)
          Set the content of this CategoryAttribute from another CategoryAttribute object.
 void setCategoryPath(CategoryPath cp)
          Sets the category path value of this attribute.
 
Methods inherited from class org.apache.lucene.util.AttributeImpl
reflectAsString, reflectWith, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

categoryPath

protected CategoryPath categoryPath
The category path instance.


properties

protected HashMap<Class<? extends CategoryProperty>,CategoryProperty> properties
A map of properties associated to the current category path.

Constructor Detail

CategoryAttributeImpl

public CategoryAttributeImpl()
Construct an empty CategoryAttributeImpl.


CategoryAttributeImpl

public CategoryAttributeImpl(CategoryPath categoryPath)
Construct a CategoryAttributeImpl with the given CategoryPath.

Parameters:
categoryPath - The category path to use.
Method Detail

set

public void set(CategoryAttribute other)
Description copied from interface: CategoryAttribute
Set the content of this CategoryAttribute from another CategoryAttribute object.

Specified by:
set in interface CategoryAttribute
Parameters:
other - The CategoryAttribute to take the content from.

getCategoryPath

public CategoryPath getCategoryPath()
Returns the category path value.

Specified by:
getCategoryPath in interface CategoryAttribute
Returns:
The category path last assigned to this attribute, or null if none has been assigned.

setCategoryPath

public void setCategoryPath(CategoryPath cp)
Description copied from interface: CategoryAttribute
Sets the category path value of this attribute.

Specified by:
setCategoryPath in interface CategoryAttribute
Parameters:
cp - A category path. May not be null.

addProperty

public void addProperty(CategoryProperty property)
                 throws UnsupportedOperationException
Description copied from interface: CategoryAttribute
Add a property. The property can be later retrieved using CategoryAttribute.getProperty(Class) with this property class .
Adding multiple properties of the same class is forbidden.

Specified by:
addProperty in interface CategoryAttribute
Parameters:
property - The property to add.
Throws:
UnsupportedOperationException - When attempting to add a property of a class that was added before and merge is prohibited.

getProperty

public CategoryProperty getProperty(Class<? extends CategoryProperty> propertyClass)
Description copied from interface: CategoryAttribute
Get a property of a certain property class.

Specified by:
getProperty in interface CategoryAttribute
Parameters:
propertyClass - The required property class.
Returns:
The property of the given class, or null if no such property exists.

getProperty

public CategoryProperty getProperty(Collection<Class<? extends CategoryProperty>> propertyClasses)
Description copied from interface: CategoryAttribute
Get a property of one of given property classes.

Specified by:
getProperty in interface CategoryAttribute
Parameters:
propertyClasses - The property classes.
Returns:
A property matching one of the given classes, or null if no such property exists.

copyTo

public void copyTo(AttributeImpl target)
Description copied from class: AttributeImpl
Copies the values from this Attribute into the passed-in target attribute. The target implementation must support all the Attributes this implementation supports.

Specified by:
copyTo in class AttributeImpl

clone

public CategoryAttribute clone()
Description copied from class: AttributeImpl
Shallow clone. Subclasses must override this if they need to clone any members deeply,

Specified by:
clone in interface CategoryAttribute
Overrides:
clone in class AttributeImpl
Returns:
A clone of this CategoryAttribute.

clear

public void clear()
Description copied from class: AttributeImpl
Clears the values in this AttributeImpl and resets it to its default value. If this implementation implements more than one Attribute interface it clears all.

Specified by:
clear in interface CategoryAttribute
Specified by:
clear in class AttributeImpl

clearProperties

public void clearProperties()
Description copied from interface: CategoryAttribute
Clear all properties.

Specified by:
clearProperties in interface CategoryAttribute

equals

public boolean equals(Object o)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

getPropertyClasses

public Set<Class<? extends CategoryProperty>> getPropertyClasses()
Description copied from interface: CategoryAttribute
Get all the active property classes.

Specified by:
getPropertyClasses in interface CategoryAttribute
Returns:
A set containing the active property classes, or null if there are no properties.

remove

public void remove(Class<? extends CategoryProperty> propertyClass)
Description copied from interface: CategoryAttribute
Remove an property of a certain property class.

Specified by:
remove in interface CategoryAttribute
Parameters:
propertyClass - The required property class.