bee

bee

Task<C>

  • C

    The type of the configuration class specific to this task. If no specific configuration is needed, this can be omitted or Object can be used.

  • kiss.Extensible

Defines the basic structure for all tasks within the Bee build system.

Tasks are defined as interfaces extending this Task interface. They declare their available operations as methods annotated with Command.

Tasks can be parameterized with a configuration class (C) to manage task-specific settings. These settings are typically stored per project.

Use the static factory method #by(Class) to obtain an executable instance of a task interface.

help()void

Displays a detailed help message for this task, including descriptions of all available commands and configuration options. This command is available by default for all tasks.

Implementation relies on TaskInfo#describe(UserInterface) to gather and format the task's metadata.

config()C

C

The project-specific configuration instance of type C, or null if the task is not parameterized with a configuration class.

Retrieves the configuration object associated with the current project for this specific task.

The configuration class is determined by reflecting on the generic type parameter C of this Task interface implementation. The actual configuration instance is managed per project using Project#associate(Class).

If the task interface is not parameterized (i.e., C is effectively Object), this method returns null.

by(ClassTtask)T

TTask

The specific type of the task interface.

ClassTtask

The Class object representing the task interface (e.g., Compile.class). Must be an interface extending Task.

T

An executable proxy instance implementing the requested task interface T.

Static factory method to obtain an executable instance of a specified task interface.

This method uses TaskInfo to find the metadata for the given task interface and creates a dynamic proxy instance that handles command execution, caching, and UI interactions.