Class EnhancedProblems

java.lang.Object
net.minecraftforge.gradleutils.shared.EnhancedProblems
All Implemented Interfaces:
Serializable, Predicate<String>

public abstract class EnhancedProblems extends Object implements Serializable, Predicate<String>
The enhanced problems contain several base helper members to help reduce duplicate code between Gradle plugins.
See Also:
  • Field Details

  • Constructor Details

    • EnhancedProblems

      protected EnhancedProblems(String name, String displayName)
      Creates a new enhanced problems instance using the given name and display name. These names are passed into a problem group that will be used by this instance.
      Parameters:
      name - The name for this enhanced problems instance
      displayName - The display name for this enhanced problems instance
      Implementation Requirements:
      The implementing subclass must make their constructor public, annotated with Inject, and have no parameters, passing in static strings to this base constructor.
  • Method Details

    • getProblems

      @Deprecated @Inject protected abstract Problems getProblems()
      Deprecated.
      Does not handle if Problems API cannot be accessed. Use getDelegate().
      The problems instance provided by Gradle services.
      Returns:
      The problems instance
      See Also:
    • getProviders

      @Inject protected abstract ProviderFactory getProviders()
      The provider factory provided by Gradle services.
      Returns:
      The provider factory
      See Also:
    • getDelegate

      public final Problems getDelegate()
      Gets the problems instance used by this enhanced problems.
      Returns:
      The delegate problems instance
    • getReporter

      protected final ProblemReporter getReporter()
      Gets the problem reporter used by the delegate problems instance.
      Returns:
      The problem reporter
    • getProblemGroup

      public final ProblemGroup getProblemGroup()
      Gets the problem group used by this enhanced problems. It is unique for the plugin.
      Returns:
      The problem group
    • getLogger

      protected final Logger getLogger()
      Gets the logger to be used by this enhanced problems.
      Returns:
      The logger
    • id

      protected final ProblemId id(String name, String displayName)
      Creates a problem ID to be used when reporting problems. The name must be unique so as to not potentially override other reported problems in the report.
      Parameters:
      name - The name for this problem
      displayName - The display name for this problem
      Returns:
      The problem ID
    • test

      public final boolean test(String property)

      Checks if the given property exists and equals true.

      This checks both Gradle and System properties, giving the former higher priority. If for some reason a provider factory is not available in the current environment, Boolean.getBoolean(String) will be used instead.

      Specified by:
      test in interface Predicate<String>
      Parameters:
      property - The property to test
      Returns:
      If the property exists and is true
    • testFalse

      public final boolean testFalse(String property)

      Checks if the given property exists and equals false.

      This checks both Gradle and System properties, giving the former higher priority. If for some reason a provider factory is not available in the current environment, Boolean.getBoolean(String) will be used instead.

      Parameters:
      property - The property to test
      Returns:
      If the property exists and is false
    • ensureFileLocation

      public final <T extends FileSystemLocation> Transformer<T,T> ensureFileLocation()
      A utility method to ensure that a FileSystemLocation Provider has (its parent) directory created. If the directory cannot be created, an exception will be thrown when the provider that consumes this is resolved.
      Type Parameters:
      T - The type of file system location (i.e. RegularFile or Directory)
      Returns:
      The transformer to apply onto a provider