public abstract class SandboxedFeature
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
SandboxedFeature.UpdateHint
A hint to determine if a feature should allow update.
|
Modifier and Type | Field and Description |
---|---|
protected java.util.List<java.lang.String> |
repositories
The list of IDs of the repositories involved in this feature.
|
protected java.util.List<SandboxConstraints> |
sandboxConstraints
The conditions a sandbox must satisfy in order to enable this feature.
|
Modifier | Constructor and Description |
---|---|
protected |
SandboxedFeature(java.util.List<SandboxConstraints> constraints,
java.lang.String reposId,
java.lang.String... reposIds)
Defines a sandboxed feature.
|
protected |
SandboxedFeature(java.lang.String reposId,
java.lang.String... reposIds)
Defines a sandboxed feature.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object o) |
java.lang.String |
getAdditionalInformation()
Returns the additional information about this feature.
|
java.lang.Object |
getAttribute(java.lang.String attrName)
Returns the value of a named attribute of this feature.
|
static java.util.List<java.lang.String> |
getAvailableProviders(java.lang.Class referenceClass)
Returns the list of IDs of all available features.
|
static java.util.List<java.lang.String> |
getAvailableProviders(java.lang.ClassLoader loader)
Returns the list of IDs of all available features.
|
ChangeSet |
getChanges(Sandbox sandbox)
Returns the changes that have been made in a sandbox.
|
ChangeSet |
getConflicts(Sandbox sandbox,
MergeConflictsException e)
Deprecated.
|
java.lang.String |
getIcon()
Gets the URI of the icon associated with this feature.
|
java.lang.String |
getId()
Gets the ID of this feature.
|
static SandboxedFeature |
getInstance(java.lang.String featureClassName,
java.lang.Class referenceClass)
Returns a provider of this class.
|
static SandboxedFeature |
getInstance(java.lang.String featureClassName,
java.lang.ClassLoader loader)
Returns a provider of this class.
|
java.lang.String |
getName()
Returns the name of this feature.
|
java.lang.String |
getPreferredApplication()
Gets the URI of the preferred application that supports this feature.
|
java.util.List<SandboxConstraints> |
getSandboxConstraints()
Gets the conditions a sandbox must satisfy in order to enable this
feature.
|
java.util.List<java.lang.String> |
getSandboxedRepositories()
Gets the IDs of the repositories involved in this feature.
|
java.lang.String |
getShortDescription()
Returns the short description of this feature.
|
static java.util.EnumSet<SandboxedFeature.UpdateHint> |
getUpdateHints(java.lang.String featureId)
Returns the hints for a feature to determine if it should allow update.
|
int |
hashCode() |
boolean |
isCompatible(Sandbox sandbox)
Returns
true if this feature can be enabled in a specified
sandbox. |
boolean |
isCompatible(SandboxConstraints constraints)
Returns
true if this feature can be enabled in a sandbox with
the specified constraints. |
boolean |
isHidden()
Returns
true if this feature is intended for programmatic
use, not for human user interfaces. |
boolean |
isPermitted()
Returns
true if this feature is permitted to be used by the
current user. |
java.lang.String |
toString() |
protected final java.util.List<java.lang.String> repositories
protected final java.util.List<SandboxConstraints> sandboxConstraints
null
if this feature can be enabled in any sandbox.protected SandboxedFeature(java.util.List<SandboxConstraints> constraints, java.lang.String reposId, java.lang.String... reposIds)
constraints
- the conditions a sandbox must satisfy in order to
enable this feature; null
if this
feature can be enabled in any sandbox. If the list
contains more than one element, a sandbox only needs
to satisfy one of them to enable this featurereposId
- the ID of the first repositoryreposIds
- the IDs of the rest of the repositoriesjava.lang.IllegalArgumentException
- if any of repository ID is nullprotected SandboxedFeature(java.lang.String reposId, java.lang.String... reposIds)
reposId
- the ID of the first repositoryreposIds
- the IDs of the rest of the repositoriesjava.lang.IllegalArgumentException
- if any of repository ID is nullpublic static java.util.EnumSet<SandboxedFeature.UpdateHint> getUpdateHints(java.lang.String featureId)
featureId
- the ID of the featurejava.lang.IllegalArgumentException
- if the given ID is nullpublic final java.util.List<java.lang.String> getSandboxedRepositories()
public final java.util.List<SandboxConstraints> getSandboxConstraints()
null
if this feature can be enabled
in any sandboxpublic final java.lang.String getId()
public boolean isCompatible(SandboxConstraints constraints)
true
if this feature can be enabled in a sandbox with
the specified constraints. This method may be invoked before a sandbox is
created, after the constraints are known.constraints
- the conditions a sandbox must satisfy to enable this
feature; null
to indicate no constraintstrue
if this feature can be enabled in a sandbox with
the given constraintspublic boolean isCompatible(Sandbox sandbox)
true
if this feature can be enabled in a specified
sandbox. By default this method is delegated to
isCompatible(SandboxConstraints)
.sandbox
- the sandbox where the feature is to be enabledtrue
if this feature can be enabled in the given
sandboxjava.lang.NullPointerException
- if the given sandbox is nullisCompatible(SandboxConstraints)
public boolean isPermitted()
true
if this feature is permitted to be used by the
current user.true
if this feature is permitted to be used by the
current userpublic ChangeSet getChanges(Sandbox sandbox)
sandbox
- the sandbox that contains the changespublic ChangeSet getConflicts(Sandbox sandbox, MergeConflictsException e)
MergeConflictsException
.sandbox
- the sandbox that causes the conflictse
- the exception that indicates the conflictspublic java.lang.String getName()
public java.lang.String getShortDescription()
public java.lang.String getAdditionalInformation()
public boolean isHidden()
true
if this feature is intended for programmatic
use, not for human user interfaces.true
if this feature is intended for programmatic
use, not for human user interfacespublic java.lang.String getIcon()
null
if no icon is associated with this featurepublic java.lang.String getPreferredApplication()
null
if no preferred application is specifiedpublic java.lang.Object getAttribute(java.lang.String attrName)
attrName
- the locale-independent name of the attributenull
if the value is null or the named attribute is
undefinedpublic java.lang.String toString()
toString
in class java.lang.Object
public static final SandboxedFeature getInstance(java.lang.String featureClassName, java.lang.ClassLoader loader)
featureClassName
- the fully qualified name of the provider classloader
- the class loader to be used to load the feature class,
or null
if the system class loader (or,
failing that, the bootstrap class loader) is to be usedjava.lang.IllegalArgumentException
- if the provider is not found or an
error occurs while loading the providerpublic static final SandboxedFeature getInstance(java.lang.String featureClassName, java.lang.Class referenceClass)
featureClassName
- the fully qualified name of the provider classreferenceClass
- a class whose class loader is the fallback loaderjava.lang.IllegalArgumentException
- if the provider is not found or an
error occurs while loading the providerpublic static final java.util.List<java.lang.String> getAvailableProviders(java.lang.ClassLoader loader)
loader
- the class loader to be used to load the feature class,
or null
if the system class loader (or,
failing that, the bootstrap class loader) is to be usedpublic static final java.util.List<java.lang.String> getAvailableProviders(java.lang.Class referenceClass)
referenceClass
- a class whose class loader is the fallback loaderpublic boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object