# Class BaseBinarySpec

java.lang.Object
org.gradle.platform.base.component.internal.AbstractComponentSpec
org.gradle.api.internal.AbstractBuildableComponentSpec
org.gradle.platform.base.binary.BaseBinarySpec

All Implemented Interfaces:
  `Buildable, BuildableComponentSpec, CheckableComponentSpec, Named, ModelElement, Binary, BinarySpec, ComponentSpec, org.gradle.platform.base.internal.BinarySpecInternal, org.gradle.platform.base.internal.ComponentSpecInternal`

@Incubating public class BaseBinarySpec extends org.gradle.api.internal.AbstractBuildableComponentSpec implements org.gradle.platform.base.internal.BinarySpecInternal
Base class that may be used for custom `BinarySpec` implementations. However, it is generally better to use an interface annotated with `Managed` and not use an implementation class at all.

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface Named

  `Named.Namer`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BaseBinarySpec()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static <T extends BaseBinarySpec>
  T`
  `create(Class<? extends BinarySpec> publicType, Class<T> implementationType, org.gradle.platform.base.internal.ComponentSpecIdentifier componentId, org.gradle.model.internal.core.MutableModelNode modelNode, @Nullable org.gradle.model.internal.core.MutableModelNode componentNode, org.gradle.internal.reflect.Instantiator instantiator, org.gradle.model.internal.core.NamedEntityInstantiator<Task> taskInstantiator, org.gradle.api.internal.CollectionCallbackActionDecorator collectionCallbackActionDecorator, org.gradle.api.internal.collections.DomainObjectCollectionFactory domainObjectCollectionFactory)`
  Creates a `BaseBinarySpec`.
  `protected org.gradle.platform.base.internal.BinaryBuildAbility`
  `getBinaryBuildAbility()`
  `final org.gradle.platform.base.internal.BinaryBuildAbility`
  `getBuildAbility()`
  `@Nullable ComponentSpec`
  `getComponent()`
  `protected <T extends ComponentSpec>
  @Nullable T`
  `getComponentAs(Class<T> componentType)`
  `LibraryBinaryIdentifier`
  `getId()`
  `DomainObjectSet<LanguageSourceSet>`
  `getInputs()`
  Returns all inputs of the binary.
  `org.gradle.platform.base.internal.BinaryNamingScheme`
  `getNamingScheme()`
  `String`
  `getProjectScopedName()`
  `Class<? extends BinarySpec>`
  `getPublicType()`
  `ModelMap<LanguageSourceSet>`
  `getSources()`
  The sources owned by this binary.
  `BinaryTasksCollection`
  `getTasks()`
  The set of tasks associated with this binary.
  `boolean`
  `hasCodependentSources()`
  `final boolean`
  `isBuildable()`
  Can this binary be built in the current environment?
  `boolean`
  `isLegacyBinary()`
  `static void`
  `replaceSingleDirectory(Set<File> dirs, File dir)`
  `void`
  `setBuildable(boolean buildable)`
  `void`
  `setNamingScheme(org.gradle.platform.base.internal.BinaryNamingScheme namingScheme)`

  ### Methods inherited from class org.gradle.api.internal.AbstractBuildableComponentSpec

  `builtBy, checkedBy, getBuildDependencies, getBuildTask, getCheckTask, hasBuildDependencies, setBuildTask, setCheckTask`

  ### Methods inherited from class org.gradle.platform.base.component.internal.AbstractComponentSpec

  `getDisplayName, getIdentifier, getName, getProjectPath, getTypeName, toString`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface Binary

  `getDisplayName`

  ### Methods inherited from interface Buildable

  `getBuildDependencies`

  ### Methods inherited from interface BuildableComponentSpec

  `builtBy, getBuildTask, hasBuildDependencies, setBuildTask`

  ### Methods inherited from interface CheckableComponentSpec

  `checkedBy, getCheckTask, setCheckTask`

  ### Methods inherited from interface ComponentSpec

  `getProjectPath`

  ### Methods inherited from interface ModelElement

  `getDisplayName, getName`

- ## Constructor Details

  - ### BaseBinarySpec

    public BaseBinarySpec()

- ## Method Details

  - ### create

    public static <T extends BaseBinarySpec> T create(Class<? extends BinarySpec> publicType, Class<T> implementationType, org.gradle.platform.base.internal.ComponentSpecIdentifier componentId, org.gradle.model.internal.core.MutableModelNode modelNode, @Nullable org.gradle.model.internal.core.MutableModelNode componentNode, org.gradle.internal.reflect.Instantiator instantiator, org.gradle.model.internal.core.NamedEntityInstantiator<Task> taskInstantiator, org.gradle.api.internal.CollectionCallbackActionDecorator collectionCallbackActionDecorator, org.gradle.api.internal.collections.DomainObjectCollectionFactory domainObjectCollectionFactory)
    Creates a `BaseBinarySpec`.
    Since:
      5.6

  - ### getId

    public LibraryBinaryIdentifier getId()
    Specified by:
      `getId` in interface `org.gradle.platform.base.internal.BinarySpecInternal`

  - ### getPublicType

    public Class<? extends BinarySpec> getPublicType()
    Specified by:
      `getPublicType` in interface `org.gradle.platform.base.internal.BinarySpecInternal`

  - ### getComponent

    public @Nullable ComponentSpec getComponent()
    Specified by:
      `getComponent` in interface `org.gradle.platform.base.internal.BinarySpecInternal`

  - ### getComponentAs

    protected <T extends ComponentSpec> @Nullable T getComponentAs(Class<T> componentType)

  - ### getProjectScopedName

    public String getProjectScopedName()
    Specified by:
      `getProjectScopedName` in interface `org.gradle.platform.base.internal.BinarySpecInternal`

  - ### setBuildable

    public void setBuildable(boolean buildable)
    Specified by:
      `setBuildable` in interface `org.gradle.platform.base.internal.BinarySpecInternal`

  - ### isBuildable

    public final boolean isBuildable()
    Description copied from interface: `BinarySpec`
    Can this binary be built in the current environment?
    Specified by:
      `isBuildable` in interface `BinarySpec`

  - ### getInputs

    public DomainObjectSet<LanguageSourceSet> getInputs()
    Description copied from interface: `BinarySpec`
    Returns all inputs of the binary. This includes source sets owned by the binary, and other source sets created elsewhere (e.g. inherited from the binary's component).
    Specified by:
      `getInputs` in interface `BinarySpec`
    Returns:
      all inputs of the binary.

  - ### getSources

    public ModelMap<LanguageSourceSet> getSources()
    Description copied from interface: `BinarySpec`
    The sources owned by this binary.
    Specified by:
      `getSources` in interface `BinarySpec`
    Returns:
      the sources owned by the binary.

  - ### getTasks

    public BinaryTasksCollection getTasks()
    Description copied from interface: `BinarySpec`
    The set of tasks associated with this binary.
    Specified by:
      `getTasks` in interface `BinarySpec`

  - ### isLegacyBinary

    public boolean isLegacyBinary()
    Specified by:
      `isLegacyBinary` in interface `org.gradle.platform.base.internal.BinarySpecInternal`

  - ### getNamingScheme

    public org.gradle.platform.base.internal.BinaryNamingScheme getNamingScheme()
    Specified by:
      `getNamingScheme` in interface `org.gradle.platform.base.internal.BinarySpecInternal`

  - ### setNamingScheme

    public void setNamingScheme(org.gradle.platform.base.internal.BinaryNamingScheme namingScheme)
    Specified by:
      `setNamingScheme` in interface `org.gradle.platform.base.internal.BinarySpecInternal`

  - ### hasCodependentSources

    public boolean hasCodependentSources()
    Specified by:
      `hasCodependentSources` in interface `org.gradle.platform.base.internal.BinarySpecInternal`

  - ### getBuildAbility

    public final org.gradle.platform.base.internal.BinaryBuildAbility getBuildAbility()
    Specified by:
      `getBuildAbility` in interface `org.gradle.platform.base.internal.BinarySpecInternal`

  - ### getBinaryBuildAbility

    protected org.gradle.platform.base.internal.BinaryBuildAbility getBinaryBuildAbility()

  - ### replaceSingleDirectory

    public static void replaceSingleDirectory(Set<File> dirs, File dir)