Interface BeanIntrospection<T>

    • Method Detail

      • getBeanProperties

        @NonNull
        java.util.Collection<BeanProperty<T,​java.lang.Object>> getBeanProperties()
        Returns:
        A immutable collection of properties.
      • getIndexedProperties

        @NonNull
        java.util.Collection<BeanProperty<T,​java.lang.Object>> getIndexedProperties​(@NonNull
                                                                                          java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
        Get all the bean properties annotated for the given annotation type. If the annotation is Introspected.indexed() by the given annotation, then it will be included in the resulting list.
        Parameters:
        annotationType - The annotation type
        Returns:
        A immutable collection of properties.
        See Also:
        Introspected.indexed()
      • instantiate

        @NonNull
        T instantiate()
               throws InstantiationException
        Instantiates an instance of the bean, throwing an exception is instantiation is not possible.
        Returns:
        An instance
        Throws:
        InstantiationException - If the bean cannot be instantiated or the arguments are not satisfied.
      • instantiate

        @NonNull
        default T instantiate​(java.lang.Object... arguments)
                       throws InstantiationException
        Instantiates an instance of the bean, throwing an exception is instantiation is not possible.
        Parameters:
        arguments - The arguments required to instantiate bean. Should match the types returned by getConstructorArguments()
        Returns:
        An instance
        Throws:
        InstantiationException - If the bean cannot be instantiated.
      • instantiate

        @NonNull
        T instantiate​(boolean strictNullable,
                      java.lang.Object... arguments)
               throws InstantiationException
        Instantiates an instance of the bean, throwing an exception is instantiation is not possible.
        Parameters:
        strictNullable - If true, require null parameters to be annotated with a nullable annotation
        arguments - The arguments required to instantiate bean. Should match the types returned by getConstructorArguments()
        Returns:
        An instance
        Throws:
        InstantiationException - If the bean cannot be instantiated.
      • getBeanType

        @NonNull
        java.lang.Class<T> getBeanType()
        The bean type.
        Returns:
        The bean type
      • getIndexedProperty

        @NonNull
        java.util.Optional<BeanProperty<T,​java.lang.Object>> getIndexedProperty​(@NonNull
                                                                                      java.lang.Class<? extends java.lang.annotation.Annotation> annotationType,
                                                                                      @NonNull
                                                                                      java.lang.String annotationValue)
        Get all the bean properties annotated for the given type.
        Parameters:
        annotationType - The annotation type
        annotationValue - The annotation value
        Returns:
        A immutable collection of properties.
        See Also:
        Introspected.indexed()
      • getBeanMethods

        @NonNull
        default java.util.Collection<BeanMethod<T,​java.lang.Object>> getBeanMethods()
        Returns the BeanMethod instances for this introspection.

        The BeanMethod instances are only those methods annotated with io.micronaut.context.annotation.Executable and hence represent a subset of the actual methods of the class and do not include any methods that are exposed as BeanProperty instances.

        Returns:
        A immutable collection of methods.
        Since:
        2.3.0
      • getIndexedProperty

        @NonNull
        default java.util.Optional<BeanProperty<T,​java.lang.Object>> getIndexedProperty​(@NonNull
                                                                                              java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
        Get all the bean properties annotated for the given type.
        Parameters:
        annotationType - The annotation type
        Returns:
        A immutable collection of properties.
        See Also:
        Introspected.indexed()
      • getConstructorArguments

        @NonNull
        default Argument<?>[] getConstructorArguments()
        The constructor arguments needed to instantiate the bean.
        Returns:
        An argument array
      • getProperty

        @NonNull
        default java.util.Optional<BeanProperty<T,​java.lang.Object>> getProperty​(@NonNull
                                                                                       java.lang.String name)
        Obtain a property by name.
        Parameters:
        name - The name of the property
        Returns:
        A bean property if found
      • propertyIndexOf

        default int propertyIndexOf​(@NonNull
                                    java.lang.String name)
        Obtain the property index position.
        Parameters:
        name - The name of the property
        Returns:
        A property index or -1 of not found.
        Since:
        3.1
      • getRequiredProperty

        @NonNull
        default <P> BeanProperty<T,​P> getRequiredProperty​(@NonNull
                                                                java.lang.String name,
                                                                @NonNull
                                                                java.lang.Class<P> type)
        Gets a property of the given name and type or throws IntrospectionException if the property is not present.
        Type Parameters:
        P - The property generic type
        Parameters:
        name - The name
        type - The type
        Returns:
        The property
      • getProperty

        @NonNull
        default <P> java.util.Optional<BeanProperty<T,​P>> getProperty​(@NonNull
                                                                            java.lang.String name,
                                                                            @NonNull
                                                                            java.lang.Class<P> type)
        Obtain a property by name and type.
        Type Parameters:
        P - The property type
        Parameters:
        name - The name of the property
        type - The property type to search for
        Returns:
        A bean property if found
      • getPropertyNames

        @NonNull
        default java.lang.String[] getPropertyNames()
        The property names as an array.
        Returns:
        The properties names
      • getIntrospection

        static <T2> BeanIntrospection<T2> getIntrospection​(java.lang.Class<T2> type)
        Obtains an introspection from the default BeanIntrospector.
        Type Parameters:
        T2 - The generic type
        Parameters:
        type - The type
        Returns:
        The introspection
        Throws:
        IntrospectionException - If the introspection cannot be found or errors when loading