Interface MemberUtils
-
- All Superinterfaces:
io.microsphere.util.Utils
public interface MemberUtils extends io.microsphere.util.Utils
A utility interface for handling members (such as fields, methods, constructors) from types in thejavax.lang.model
package.Overview
This interface provides a set of static methods to retrieve and filter members of a type, including direct members and those inherited from superclasses and interfaces. It is designed to simplify the process of working with type elements and their enclosed elements during annotation processing.
Key Features
getDeclaredMembers(TypeMirror)
- Retrieves directly declared members of a type.getAllDeclaredMembers(TypeMirror)
- Retrieves all declared members, including those from superclasses and interfaces.findDeclaredMembers(TypeMirror, Predicate...)
- Retrieves and filters declared members based on provided predicates.findAllDeclaredMembers(TypeMirror, Predicate...)
- Retrieves all declared members and applies filtering via predicates.
Example Usage
// Retrieve all declared methods from a TypeMirror List<ExecutableElement> methods = findDeclaredMembers(typeMirror, element -> element.getKind() == ElementKind.METHOD );
// Retrieve all fields that start with "m_" List<VariableElement> filteredFields = findDeclaredMembers(typeElement, element -> element.getKind() == ElementKind.FIELD, element -> element.getSimpleName().toString().startsWith("m_") );
- Since:
- 1.0.0
- Author:
- Mercy
-
-
Method Summary
Static Methods Modifier and Type Method Description static <T extends javax.lang.model.element.Element>
java.util.List<T>findAllDeclaredMembers(javax.lang.model.element.TypeElement type, java.util.function.Predicate<? super T>... memberFilters)
Retrieves all declared members (fields, methods, constructors, etc.) from the givenTypeElement
, including those inherited from superclasses and implemented interfaces.static <T extends javax.lang.model.element.Element>
java.util.List<T>findAllDeclaredMembers(javax.lang.model.type.TypeMirror type, java.util.function.Predicate<? super T>... memberFilters)
Returns all declared members (including those from superclasses and interfaces) of the providedTypeMirror
, optionally filtered by one or more predicates.static <T extends javax.lang.model.element.Element>
java.util.List<T>findDeclaredMembers(javax.lang.model.element.TypeElement type, boolean all, java.util.function.Predicate<? super T>... memberFilters)
Returns the declared members of the providedTypeElement
, optionally including members from superclasses and interfaces, and filtered by one or more predicates.static <T extends javax.lang.model.element.Element>
java.util.List<T>findDeclaredMembers(javax.lang.model.element.TypeElement type, java.util.function.Predicate<? super T>... memberFilters)
Returns the directly declared members of the providedTypeElement
, optionally filtered by one or more predicates.static <T extends javax.lang.model.element.Element>
java.util.List<T>findDeclaredMembers(javax.lang.model.type.TypeMirror type, boolean includeHierarchicalTypes, java.util.function.Predicate<? super T>... memberFilters)
Returns the declared members of the providedTypeMirror
, optionally including members from superclasses and interfaces, and filtered by one or more predicates.static <T extends javax.lang.model.element.Element>
java.util.List<T>findDeclaredMembers(javax.lang.model.type.TypeMirror type, java.util.function.Predicate<? super T>... memberFilters)
Returns the declared members of the providedTypeMirror
, optionally filtered by one or more predicates.static java.util.List<? extends javax.lang.model.element.Element>
getAllDeclaredMembers(javax.lang.model.element.TypeElement type)
Returns all declared members (including those from superclasses and interfaces) of the providedTypeElement
.static java.util.List<? extends javax.lang.model.element.Element>
getAllDeclaredMembers(javax.lang.model.type.TypeMirror type)
Returns all declared members (including those from superclasses and interfaces) of the providedTypeMirror
.static java.util.List<? extends javax.lang.model.element.Element>
getDeclaredMembers(javax.lang.model.element.TypeElement type)
Returns the directly declared members of the providedTypeElement
.static java.util.List<? extends javax.lang.model.element.Element>
getDeclaredMembers(javax.lang.model.element.TypeElement type, boolean includeHierarchicalTypes)
Returns the declared members of the providedTypeElement
, optionally including members from superclasses and interfaces.static java.util.List<? extends javax.lang.model.element.Element>
getDeclaredMembers(javax.lang.model.type.TypeMirror type)
Returns the directly declared members of the providedTypeMirror
.static java.util.List<? extends javax.lang.model.element.Element>
getDeclaredMembers(javax.lang.model.type.TypeMirror type, boolean includeHierarchicalTypes)
Returns the declared members of the providedTypeMirror
, optionally including members from superclasses and interfaces.
-
-
-
Method Detail
-
getDeclaredMembers
@Nonnull @Immutable static java.util.List<? extends javax.lang.model.element.Element> getDeclaredMembers(javax.lang.model.type.TypeMirror type)
Returns the directly declared members of the providedTypeMirror
. If the given type isnull
, an empty list will be returned.Example Usage
TypeMirror typeMirror = ...; // Obtain a valid TypeMirror instance List extends Element> members = getDeclaredMembers(typeMirror); if (!members.isEmpty()) { for (Element member : members) { System.out.println("Declared member: " + member); } }
- Parameters:
type
- the type mirror to retrieve declared members from- Returns:
- a list of directly declared members, or an empty list if the type is
null
-
getDeclaredMembers
@Nonnull @Immutable static java.util.List<? extends javax.lang.model.element.Element> getDeclaredMembers(javax.lang.model.element.TypeElement type)
Returns the directly declared members of the providedTypeElement
. If the given type isnull
, an empty list will be returned.Example Usage
TypeElement typeElement = ...; // Obtain a valid TypeElement instance List<? extends Element> members = getDeclaredMembers(typeElement); if (!members.isEmpty()) { for (Element member : members) { System.out.println("Declared member: " + member); } }
- Parameters:
type
- the type element to retrieve declared members from- Returns:
- a list of directly declared members, or an empty list if the type is
null
-
getAllDeclaredMembers
@Nonnull @Immutable static java.util.List<? extends javax.lang.model.element.Element> getAllDeclaredMembers(javax.lang.model.type.TypeMirror type)
Returns all declared members (including those from superclasses and interfaces) of the providedTypeMirror
. If the given type isnull
, an empty list will be returned.Example Usage
TypeMirror typeMirror = ...; // Obtain a valid TypeMirror instance List<? extends Element> allMembers = getAllDeclaredMembers(typeMirror); if (!allMembers.isEmpty()) { for (Element member : allMembers) { System.out.println("All declared member: " + member); } }
- Parameters:
type
- the type mirror to retrieve all declared members from- Returns:
- a list of all declared members, or an empty list if the type is
null
-
getAllDeclaredMembers
@Nonnull @Immutable static java.util.List<? extends javax.lang.model.element.Element> getAllDeclaredMembers(javax.lang.model.element.TypeElement type)
Returns all declared members (including those from superclasses and interfaces) of the providedTypeElement
. If the given type isnull
, an empty list will be returned.Example Usage
TypeElement typeElement = ...; // Obtain a valid TypeElement instance List<? extends Element> allMembers = getAllDeclaredMembers(typeElement); if (!allMembers.isEmpty()) { for (Element member : allMembers) { System.out.println("All declared member: " + member); } }
- Parameters:
type
- the type element to retrieve all declared members from- Returns:
- a list of all declared members, or an empty list if the type is
null
-
getDeclaredMembers
@Nonnull @Immutable static java.util.List<? extends javax.lang.model.element.Element> getDeclaredMembers(javax.lang.model.type.TypeMirror type, boolean includeHierarchicalTypes)
Returns the declared members of the providedTypeMirror
, optionally including members from superclasses and interfaces.If the given type is
null
, an empty list will be returned.Example Usage
TypeMirror typeMirror = ...; // Obtain a valid TypeMirror instance boolean includeSuperMembers = true; // Include members from superclasses/interfaces List<? extends Element> members = getDeclaredMembers(typeMirror, includeSuperMembers); for (Element member : members) { System.out.println("Member: " + member); }
- Parameters:
type
- the type mirror to retrieve declared members fromincludeHierarchicalTypes
- whether to include members from superclasses and interfaces- Returns:
- a list of declared members, or an empty list if the type is
null
-
getDeclaredMembers
@Nonnull @Immutable static java.util.List<? extends javax.lang.model.element.Element> getDeclaredMembers(javax.lang.model.element.TypeElement type, boolean includeHierarchicalTypes)
Returns the declared members of the providedTypeElement
, optionally including members from superclasses and interfaces.If the given type is
null
, an empty list will be returned.Example Usage
TypeElement typeElement = ...; // Obtain a valid TypeElement instance boolean includeSuperMembers = true; // Include members from superclasses/interfaces List<? extends Element> members = getDeclaredMembers(typeElement, includeSuperMembers); for (Element member : members) { System.out.println("Member: " + member); }
- Parameters:
type
- the type element to retrieve declared members fromincludeHierarchicalTypes
- whether to include members from superclasses and interfaces- Returns:
- a list of declared members, or an empty list if the type is
null
-
findDeclaredMembers
@Nonnull @Immutable static <T extends javax.lang.model.element.Element> java.util.List<T> findDeclaredMembers(javax.lang.model.type.TypeMirror type, java.util.function.Predicate<? super T>... memberFilters)
Returns the declared members of the providedTypeMirror
, optionally filtered by one or more predicates.If the given type is
null
, an empty list will be returned.Example Usage
TypeMirror typeMirror = ...; // Obtain a valid TypeMirror instance List<ExecutableElement> methods = findDeclaredMembers(typeMirror, element -> element.getKind() == ElementKind.METHOD, element -> element.getSimpleName().toString().startsWith("get") ); for (Element method : methods) { System.out.println("Matching method: " + method); }
- Type Parameters:
T
- the type of elements to filter- Parameters:
type
- the type mirror to retrieve declared members frommemberFilters
- the predicates used to filter members- Returns:
- a list of declared members matching the filters, or an empty list if the type is
null
-
findDeclaredMembers
@Nonnull @Immutable static <T extends javax.lang.model.element.Element> java.util.List<T> findDeclaredMembers(javax.lang.model.element.TypeElement type, java.util.function.Predicate<? super T>... memberFilters)
Returns the directly declared members of the providedTypeElement
, optionally filtered by one or more predicates.If the given type is
null
, an empty list will be returned.Example Usage
TypeElement typeElement = ...; // Obtain a valid TypeElement instance List<VariableElement> fields = findDeclaredMembers(typeElement, element -> element.getKind() == ElementKind.FIELD, element -> element.getSimpleName().toString().startsWith("m_") ); for (Element field : fields) { System.out.println("Matching field: " + field); }
- Type Parameters:
T
- the type of elements to filter- Parameters:
type
- the type element to retrieve declared members frommemberFilters
- the predicates used to filter members- Returns:
- a list of declared members matching the filters, or an empty list if the type is
null
-
findAllDeclaredMembers
@Nonnull @Immutable static <T extends javax.lang.model.element.Element> java.util.List<T> findAllDeclaredMembers(javax.lang.model.type.TypeMirror type, java.util.function.Predicate<? super T>... memberFilters)
Returns all declared members (including those from superclasses and interfaces) of the providedTypeMirror
, optionally filtered by one or more predicates.If the given type is
null
, an empty list will be returned.Example Usage
TypeMirror typeMirror = ...; // Obtain a valid TypeMirror instance List<ExecutableElement> methods = findAllDeclaredMembers(typeMirror, element -> element.getKind() == ElementKind.METHOD, element -> element.getSimpleName().toString().startsWith("get") ); for (Element method : methods) { System.out.println("Matching method: " + method); }
- Type Parameters:
T
- the type of elements to filter- Parameters:
type
- the type mirror to retrieve all declared members frommemberFilters
- the predicates used to filter members- Returns:
- a list of all declared members matching the filters, or an empty list if the type is
null
-
findAllDeclaredMembers
@Nonnull @Immutable static <T extends javax.lang.model.element.Element> java.util.List<T> findAllDeclaredMembers(javax.lang.model.element.TypeElement type, java.util.function.Predicate<? super T>... memberFilters)
Retrieves all declared members (fields, methods, constructors, etc.) from the givenTypeElement
, including those inherited from superclasses and implemented interfaces.This method collects all declared members by traversing the type hierarchy and applying the provided filters to narrow down the results.
Example Usage
TypeElement typeElement = ...; // Obtain a valid TypeElement instance List<VariableElement> fields = findAllDeclaredMembers(typeElement, element -> element.getKind() == ElementKind.FIELD ); for (Element field : fields) { System.out.println("Field: " + field); }
List<ExecutableElement> methods = findAllDeclaredMembers(typeElement, element -> element.getKind() == ElementKind.METHOD, element -> element.getSimpleName().toString().startsWith("get") ); for (Element method : methods) { System.out.println("Getter method: " + method); }
- Type Parameters:
T
- the type of elements to filter- Parameters:
type
- the type element to retrieve all declared members frommemberFilters
- the predicates used to filter members- Returns:
- a list of all declared members matching the filters, or an empty list if the type is
null
-
findDeclaredMembers
@Nonnull @Immutable static <T extends javax.lang.model.element.Element> java.util.List<T> findDeclaredMembers(javax.lang.model.type.TypeMirror type, boolean includeHierarchicalTypes, java.util.function.Predicate<? super T>... memberFilters)
Returns the declared members of the providedTypeMirror
, optionally including members from superclasses and interfaces, and filtered by one or more predicates.If the given type is
null
, an empty list will be returned.Example Usage
TypeMirror typeMirror = ...; // Obtain a valid TypeMirror instance boolean includeSuperMembers = true; // Include members from superclasses/interfaces List<ExecutableElement> methods = findDeclaredMembers(typeMirror, includeSuperMembers, element -> element.getKind() == ElementKind.METHOD, element -> element.getSimpleName().toString().startsWith("get") ); for (Element method : methods) { System.out.println("Matching method: " + method); }
- Type Parameters:
T
- the type of elements to filter- Parameters:
type
- the type mirror to retrieve declared members fromincludeHierarchicalTypes
- whether to include members from superclasses and interfacesmemberFilters
- the predicates used to filter members- Returns:
- a list of declared members matching the filters, or an empty list if the type is
null
-
findDeclaredMembers
@Nonnull @Immutable static <T extends javax.lang.model.element.Element> java.util.List<T> findDeclaredMembers(javax.lang.model.element.TypeElement type, boolean all, java.util.function.Predicate<? super T>... memberFilters)
Returns the declared members of the providedTypeElement
, optionally including members from superclasses and interfaces, and filtered by one or more predicates.If the given type is
null
, an empty list will be returned.Example Usage
TypeElement typeElement = ...; // Obtain a valid TypeElement instance boolean includeSuperMembers = true; // Include members from superclasses/interfaces List<VariableElement> fields = findDeclaredMembers(typeElement, includeSuperMembers, element -> element.getKind() == ElementKind.FIELD, element -> element.getSimpleName().toString().startsWith("m_") ); for (Element field : fields) { System.out.println("Matching field: " + field); }
- Type Parameters:
T
- the type of elements to filter- Parameters:
type
- the type element to retrieve declared members fromall
- whether to include members from superclasses and interfacesmemberFilters
- the predicates used to filter members- Returns:
- a list of declared members matching the filters, or an empty list if the type is
null
-
-