Class ReflectiveDefinition

  • All Implemented Interfaces:
    java.io.Serializable
    Direct Known Subclasses:
    ClassDefinition, MemberDefinition

    @Immutable
    public abstract class ReflectiveDefinition
    extends java.lang.Object
    implements java.io.Serializable
    The abstract definition class for Java Reflection.

    This class serves as a base for defining reflective constructs such as classes, methods, fields, etc., providing common metadata and functionality including:

    • The version since which the construct was introduced
    • Deprecation information (if applicable)
    • Class name resolution capabilities

    Example Usage

    {@code
     // Example implementation: ClassDefinition extending ReflectiveDefinition
     public class ClassDefinition extends ReflectiveDefinition {
         public ClassDefinition(@Nonnull String since, @Nonnull String className) {
             super(since, className);
         }
    
         public ClassDefinition(@Nonnull Version since, @Nonnull String className) {
             super(since, className);
         }
    
         public ClassDefinition(@Nonnull String since, @Nullable Deprecation deprecation, @Nonnull String className) {
             super(since, deprecation, className);
         }
    
         public ClassDefinition(@Nonnull Version since, @Nullable Deprecation deprecation, @Nonnull String className) {
             super(since, deprecation, className);
         }
    
         // Implementing abstract method
    Since:
    1.0.0
    Author:
    Mercy
    See Also:
    ClassDefinition, MemberDefinition, Serialized Form
    • Constructor Detail

      • ReflectiveDefinition

        protected ReflectiveDefinition​(@Nonnull
                                       java.lang.String since,
                                       @Nonnull
                                       java.lang.String className)
        Parameters:
        since - the 'since' version
        className - the name of class
      • ReflectiveDefinition

        protected ReflectiveDefinition​(@Nonnull
                                       java.lang.String since,
                                       @Nullable
                                       Deprecation deprecation,
                                       @Nonnull
                                       java.lang.String className)
        Parameters:
        since - the 'since' version
        deprecation - the deprecation
        className - the name of class
      • ReflectiveDefinition

        protected ReflectiveDefinition​(@Nonnull
                                       Version since,
                                       @Nonnull
                                       java.lang.String className)
        Parameters:
        since - the 'since' version
        className - the name of class
      • ReflectiveDefinition

        protected ReflectiveDefinition​(@Nonnull
                                       Version since,
                                       @Nullable
                                       Deprecation deprecation,
                                       @Nonnull
                                       java.lang.String className)
        Parameters:
        since - the 'since' version
        deprecation - the deprecation
        className - the name of class
    • Method Detail

      • getSince

        @Nonnull
        public final Version getSince()
        Get the 'since' version
        Returns:
        non-null
      • getDeprecation

        @Nullable
        public final Deprecation getDeprecation()
        Get the deprecation
        Returns:
        nullable
      • getClassName

        @Nonnull
        public final java.lang.String getClassName()
        Get the name of class
        Returns:
        non-null
      • getResolvedClass

        @Nullable
        public final java.lang.Class<?> getResolvedClass()
        Get the resolved class
        Returns:
        null if can't be resolved
      • isDeprecated

        public final boolean isDeprecated()
        Whether the member is deprecated
      • isPresent

        public abstract boolean isPresent()
        Whether the member is present
        Returns:
        true if present
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object