# 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, org.gradle.model.internal.core.MutableModelNode componentNode, org.gradle.internal.reflect.Instantiator instantiator, org.gradle.api.internal.project.taskfactory.ITaskFactory taskFactory)`
`protected org.gradle.platform.base.internal.BinaryBuildAbility`
`getBinaryBuildAbility()`
`final org.gradle.platform.base.internal.BinaryBuildAbility`
`getBuildAbility()`
`ComponentSpec`
`getComponent()`
`protected <T extends ComponentSpec>
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.api.internal.project.taskfactory.ITaskFactory taskFactory)

### 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

@Nullable public ComponentSpec getComponent()

Specified by:
  `getComponent` in interface `org.gradle.platform.base.internal.BinarySpecInternal`

### getComponentAs

@Nullable protected <T extends ComponentSpec> 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)