Package org.apache.lucene.util
Class AttributeFactory
java.lang.Object
org.apache.lucene.util.AttributeFactory
- Direct Known Subclasses:
AttributeFactory.StaticImplementationAttributeFactory
An AttributeFactory creates instances of
AttributeImpls.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classExpert: AttributeFactory returning an instance of the givenclazzfor the attributes it implements. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final AttributeFactoryThis is the default factory that createsAttributeImpls using the class name of the suppliedAttributeinterface class by appendingImplto it. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract AttributeImplcreateAttributeInstance(Class<? extends Attribute> attClass) Returns anAttributeImplfor the suppliedAttributeinterface class.static <A extends AttributeImpl>
AttributeFactorygetStaticImplementation(AttributeFactory delegate, Class<A> clazz) Returns an AttributeFactory returning an instance of the givenclazzfor the attributes it implements.
-
Field Details
-
DEFAULT_ATTRIBUTE_FACTORY
This is the default factory that createsAttributeImpls using the class name of the suppliedAttributeinterface class by appendingImplto it.
-
-
Constructor Details
-
AttributeFactory
public AttributeFactory()
-
-
Method Details
-
createAttributeInstance
public abstract AttributeImpl createAttributeInstance(Class<? extends Attribute> attClass) throws UndeclaredThrowableException Returns anAttributeImplfor the suppliedAttributeinterface class.- Throws:
UndeclaredThrowableException- A wrapper runtime exception thrown if the constructor of the attribute class throws a checked exception. Note that attributes should not throw or declare checked exceptions; this may be verified and fail early in the future.
-
getStaticImplementation
public static <A extends AttributeImpl> AttributeFactory getStaticImplementation(AttributeFactory delegate, Class<A> clazz) Returns an AttributeFactory returning an instance of the givenclazzfor the attributes it implements. The givenclazzmust have a public no-arg constructor. For all other attributes it calls the given delegate factory as fallback. This method can be used to prefer a specificAttributeImplwhich combines multiple attributes over separate classes.Please save instances created by this method in a static final field, because on each call, this does reflection for creating a
MethodHandle.
-