java.lang.Object
org.apache.lucene.util.AttributeFactory
- Direct Known Subclasses:
AttributeFactory.DefaultAttributeFactory,AttributeFactory.StaticImplementationAttributeFactory
An AttributeFactory creates instances of
AttributeImpls.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final classstatic 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.private static final MethodHandles.Lookupprivate static final MethodTypeprivate static final MethodType -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract AttributeImplcreateAttributeInstance(Class<? extends Attribute> attClass) Returns anAttributeImplfor the suppliedAttributeinterface class.(package private) static final MethodHandlefindAttributeImplCtor(Class<? extends AttributeImpl> clazz) Returns a correctly typedMethodHandlefor the no-arg ctor of the given 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
-
lookup
-
NO_ARG_CTOR
-
NO_ARG_RETURNING_ATTRIBUTEIMPL
-
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.
-
findAttributeImplCtor
Returns a correctly typedMethodHandlefor the no-arg ctor of the given class. -
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.
-