Package oracle.dbtools.plugin.api.types
Interface TypeQualifier<T>
-
- Type Parameters:
T- The type of the service
public interface TypeQualifier<T>Qualifies the specific type of a service to be discovered viaInstanceLocator. Note that whilst JSR-330 supports the notion of arbitraryQualifiers, this framework only supports the use of theNamedqualifier.- Since:
- 19.3.0
- Author:
- cdivilly
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interfaceTypeQualifier.Builder<T>BuildTypeQualifierinstancesstatic classTypeQualifier.MatchingModeDetermines how theTypeQualifiermatches types
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Deprecated Methods Modifier and Type Method Description static <T> TypeQualifier<T>any(java.lang.Class<T> type)Matches anyTypeQualifierof the specified type, ignoring anyQualifiers on the typejava.lang.Stringdeclaration()Provides the source code for thisTypeQualifierbooleanequals(java.lang.Object obj)static <T> TypeQualifier<T>from(java.lang.Class<T> type, java.lang.annotation.Annotation... qualifiers)Deprecated.usenamed(Class, String),any(Class)orprovides(Class)to more accurately identify theTypeQualifierstatic <T> TypeQualifier<T>from(java.lang.Class<T> type, java.lang.Iterable<? extends java.lang.annotation.Annotation> qualifiers)Deprecated.usenamed(Class, String),any(Class)orprovides(Class)to more accurately identify theTypeQualifierinthashCode()booleanisEmpty()Returns true if the qualifier has no annotation qualifiers, false otherwisebooleanmatches(TypeQualifier<?> other)Determines if thisTypeQualifieris a match for the specifiedTypeQualifierbooleanmatches(TypeReflection<?> type)Determines if thisTypeQualifieris a match for the specified typeTypeQualifier.MatchingModematchingMode()Indicates how types are matchedjava.lang.Stringname()Returns the name constraint of thisTypeQualifierif any.static <T> TypeQualifier<T>named(java.lang.Class<T> type, java.lang.String name)Construct aTypeQualifierfor the specified type and namedefault TypeQualifier<?>normalize()Normalize a potentially primitive type (e.g int.class) to it's boxed equivalent (e.g.static <T> TypeQualifier<T>provides(java.lang.Class<T> type)Represents a provider of the specified servicejava.lang.StringtoString()java.lang.Class<T>type()The type of the instance to findstatic <T> TypeQualifier<T>type(java.lang.Class<T> type)Selects the specified concrete type<E> TypeQualifier<E>withType(java.lang.Class<E> type)Override thisTypeQualifierto produce a new instance that uses the specified type
-
-
-
Method Detail
-
declaration
java.lang.String declaration()
Provides the source code for thisTypeQualifier- Returns:
- Text representing how this qualifier would be instantiated in source code
-
equals
boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
isEmpty
boolean isEmpty()
Returns true if the qualifier has no annotation qualifiers, false otherwise- Returns:
- true if the qualifier only denotes a type, i.e. has zero
Qualifierannotations, false otherwise
-
matches
boolean matches(TypeQualifier<?> other)
Determines if thisTypeQualifieris a match for the specifiedTypeQualifier- Parameters:
other- The qualifier to test against- Returns:
- true if there is a match, false otherwise
-
matches
boolean matches(TypeReflection<?> type)
Determines if thisTypeQualifieris a match for the specified type- Parameters:
type- The type to test again- Returns:
- true if the qualifier matches, false otherwise
-
matchingMode
TypeQualifier.MatchingMode matchingMode()
Indicates how types are matched- Returns:
TypeQualifier.MatchingModeinstance
-
name
java.lang.String name()
Returns the name constraint of thisTypeQualifierif any.- Returns:
- Name constraint, or null if this qualifier does not have a
Namedconstraint
-
withType
<E> TypeQualifier<E> withType(java.lang.Class<E> type)
Override thisTypeQualifierto produce a new instance that uses the specified type- Type Parameters:
E- The overidden type of the qualifier- Parameters:
type- The new type- Returns:
TypeQualifierinstance
-
toString
java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
type
java.lang.Class<T> type()
The type of the instance to find- Returns:
- The type to find
-
any
static <T> TypeQualifier<T> any(java.lang.Class<T> type)
Matches anyTypeQualifierof the specified type, ignoring anyQualifiers on the type- Type Parameters:
T- The type of the service- Parameters:
type- The type of the service- Returns:
TypeQualifierinstance
-
from
@Deprecated static <T> TypeQualifier<T> from(java.lang.Class<T> type, java.lang.annotation.Annotation... qualifiers)
Deprecated.usenamed(Class, String),any(Class)orprovides(Class)to more accurately identify theTypeQualifierConstruct anTypeQualifierfrom the specifiedAnnotations. Note only theNamedqualifier annotation is considered. ArbitraryQualifierannotations are not supported as it is not possible to optimize their use for compile time dependency injection- Type Parameters:
T- The type of the service- Parameters:
type- The Type of the servicequalifiers- The set of annotations to examine- Returns:
TypeQualifierinstance
-
from
@Deprecated static <T> TypeQualifier<T> from(java.lang.Class<T> type, java.lang.Iterable<? extends java.lang.annotation.Annotation> qualifiers)
Deprecated.usenamed(Class, String),any(Class)orprovides(Class)to more accurately identify theTypeQualifierConstruct anTypeQualifierfrom the specifiedAnnotations. Note only theNamedqualifier annotation is considered. ArbitraryQualifierannotations are not supported as it is not possible to optimize their use for compile time dependency injection- Type Parameters:
T- The type of the service- Parameters:
type- The Type of the servicequalifiers- The set of annotations to examine- Returns:
TypeQualifierinstance
-
named
static <T> TypeQualifier<T> named(java.lang.Class<T> type, java.lang.String name)
Construct aTypeQualifierfor the specified type and name- Type Parameters:
T- The type of the service- Parameters:
type- The type of the servicename- TheNamedqualifier bound to the service- Returns:
TypeQualifierinstance
-
provides
static <T> TypeQualifier<T> provides(java.lang.Class<T> type)
Represents a provider of the specified service- Type Parameters:
T- The type of the service- Parameters:
type- The type of the service- Returns:
TypeQualifierinstance
-
type
static <T> TypeQualifier<T> type(java.lang.Class<T> type)
Selects the specified concrete type- Type Parameters:
T- The type of the service- Parameters:
type- The exact type to select- Returns:
TypeQualifierinstance
-
normalize
default TypeQualifier<?> normalize()
Normalize a potentially primitive type (e.g int.class) to it's boxed equivalent (e.g. Integer.class).- Returns:
- Self, unless this qualifier uses a primitive type, it's boxed equivalent
-
-