public abstract class AbstractScm extends Object implements Scm
Scm
that returns null
for all of the optional contract members.
Required members have no default implementation.
Derived classes should provide their supported features
to the constructor. The nullary
constructor assumes the SCM doesn't support any of the optional features.
SCM implementors are strongly encouraged to use this base class for their Scm
implementation.
As new features are added SCMs built on this base class will better retain cross-version support because it
will provide null
implementations of new optional members.
Modifier | Constructor and Description |
---|---|
protected |
AbstractScm() |
protected |
AbstractScm(Set<com.atlassian.bitbucket.scm.ScmFeature> features) |
Modifier and Type | Method and Description |
---|---|
PluginCommandBuilderFactory |
getCommandBuilderFactory()
Retrieves a
PluginCommandBuilderFactory , used to create command builders for
custom SCM commands. |
PluginCompareCommandFactory |
getCompareCommandFactory()
Retrieves a
PluginCompareCommandFactory , used to create commands tailored for comparing
refs. |
Set<com.atlassian.bitbucket.scm.ScmFeature> |
getFeatures()
Retrieves the
features that are supported by this SCM. |
PluginPullRequestCommandFactory |
getPullRequestCommandFactory()
Retrieves a
PluginPullRequestCommandFactory , used to create commands tailored for use
supporting pull requests. |
PluginRefCommandFactory |
getRefCommandFactory()
Retrieves a
PluginRefCommandFactory , used to create commands tailored for creating
branches and tags . |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getBulkContentCommandFactory, getCommandFactory, getDefaultBranch, getExtendedCommandFactory, getId, getIntegrityCheckCommandFactory, getMergeStrategies, getMirrorCommandFactory, getName, getStatus, isEmpty
public PluginCommandBuilderFactory getCommandBuilderFactory()
Scm
PluginCommandBuilderFactory
, used to create command builders
for
custom SCM commands.
Implementation Note: This method is optional. SCMs which do not support a ScmCommandBuilder
may return null
.
getCommandBuilderFactory
in interface Scm
null
if the SCM does not support command buildersPluginCommandBuilderFactory
,
ScmFeature.COMMAND_BUILDERS
public PluginCompareCommandFactory getCompareCommandFactory()
Scm
PluginCompareCommandFactory
, used to create commands
tailored for comparing
refs.
Implementation Note: This method is optional. SCMs which do not support comparing refs may return
null
.
getCompareCommandFactory
in interface Scm
null
if the SCM does not support itPluginCompareCommandFactory
,
ScmFeature.COMPARE
@Nonnull public Set<com.atlassian.bitbucket.scm.ScmFeature> getFeatures()
Scm
features
that are supported by this SCM.
Since the system relies on optional features to provide some functionality, like branch compare and pull
requests, it relies on this set to disable functionality that requires features the SCM doesn't provide.
Similarly, plugin developers can use the returned features to control which optional features they try
to use, rather than checking for null
or handling UnsupportedOperationException
s.
getFeatures
in interface Scm
null
public PluginPullRequestCommandFactory getPullRequestCommandFactory()
Scm
PluginPullRequestCommandFactory
, used to create commands
tailored for use
supporting pull requests. Repositories
using an SCM which implements this method will have
the ability to create, view and merge pull requests.
Implementation Note: This method is optional. SCMs which do not support pull requests may return
null
. Repositories
using such SCMs will not be able to create pull requests.
getPullRequestCommandFactory
in interface Scm
null
if the SCM does not support pull requestsPluginPullRequestCommandFactory
,
ScmFeature.PULL_REQUESTS
public PluginRefCommandFactory getRefCommandFactory()
Scm
PluginRefCommandFactory
, used to create commands
tailored for creating
branches
and tags
.
Implementation Note: This method is optional. SCMs which do not support mutable refs may return
null
. Repositories
using such SCMs will not be able create
branches
and tags
.
getRefCommandFactory
in interface Scm
ScmFeature.REFS
Copyright © 2024 Atlassian. All rights reserved.