Record Class ApplicationModuleSource

java.lang.Object
java.lang.Record
org.springframework.modulith.core.ApplicationModuleSource

record ApplicationModuleSource(JavaPackage moduleBasePackage, String moduleName) extends Record
The source of an ApplicationModule. Essentially a JavaPackage and associated naming strategy for the module. This will be used when constructing sources from a base package and an ApplicationModuleDetectionStrategy so that the names of the module to be created for the detected packages become the trailing name underneath the base package. For example, scanning from com.acme, an ApplicationModule located in com.acme.foo.bar would be named foo.bar.
Since:
1.3
Author:
Oliver Drotbohm
  • Constructor Details

    • ApplicationModuleSource

      ApplicationModuleSource(JavaPackage moduleBasePackage, String moduleName)
      Creates an instance of a ApplicationModuleSource record class.
      Parameters:
      moduleBasePackage - the value for the moduleBasePackage record component
      moduleName - the value for the moduleName record component
  • Method Details

    • from

      public static Stream<ApplicationModuleSource> from(JavaPackage pkg, ApplicationModuleDetectionStrategy strategy, boolean fullyQualifiedModuleNames)
      Returns a Stream of ApplicationModuleSources by applying the given ApplicationModuleDetectionStrategy to the given base package.
      Parameters:
      pkg - must not be null.
      strategy - must not be null.
      fullyQualifiedModuleNames - whether to use fully qualified module names.
      Returns:
      will never be null.
    • from

      public static ApplicationModuleSource from(JavaPackage pkg, String name)
      Creates a new ApplicationModuleSource for the given JavaPackage and name.
      Parameters:
      pkg - must not be null.
      name - must not be null or empty.
      Returns:
      will never be null.
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • moduleBasePackage

      public JavaPackage moduleBasePackage()
      Returns the value of the moduleBasePackage record component.
      Returns:
      the value of the moduleBasePackage record component
    • moduleName

      public String moduleName()
      Returns the value of the moduleName record component.
      Returns:
      the value of the moduleName record component