public class SimpleSandboxedFeatures extends SandboxedFeatures
getName(id)
of this class by
default will return getProperty(id, "name")
if the property
value is not null.
Subclasses must override initialize
method to populate the
list of features and optionally their properties.
loadProperties
may be overridden if initialize
does not populate the properties of all features. In any case, subclasses
must provide the list of features in the initialize
method. If
the properties of a feature should be populated later by
loadProperties
, the initialize
method should put
an entry with null
value and the ID of the feature as the key.
In other words, the keys of the given map must be populated completely in
the initialize
method.
This class also provides a factory method to create an instance from a
Properties
object. Here is the example of an instace described
by properties:
# Give each feature an integer sequence number.
oracle.example.MyFeatureX=10
# Use the sequence number as the prefix to specify properties.
# Property values must be String by default, or boolean by special syntax.
10.name=My Feature XXX
# Use .boolean. to specify a boolean property.
10.boolean.isHidden=false
# Property names are case-sensitive and not trimmed.
# String values are trimmed when imported.
10.category=CategoryA
oracle.example.MyFeatureY=20
20.name=My Feature YYY
20.boolean.isHidden=true
20.isHiddenExpr=${expr}
20.category=CategoryA
oracle.example.MyFeatureZ=30
30.name=My Feature ZZZ
Modifier and Type | Field and Description |
---|---|
static SandboxedFeatures |
EMPTY_COLLECTION
An empty collection.
|
Modifier | Constructor and Description |
---|---|
|
SimpleSandboxedFeatures()
Constructs a collection with initial capacity set to 6.
|
protected |
SimpleSandboxedFeatures(int initialCapacity)
Constructs a collection with the given capacity.
|
Modifier and Type | Method and Description |
---|---|
java.lang.String |
getAdditionalInformation(java.lang.String id)
Returns the value of property "additionalInformation" or delegates the call
to the sandboxed feature of the given ID if the property value is null.
|
java.lang.String |
getIcon(java.lang.String id)
Returns the value of property "icon" or delegates the call to the
sandboxed feature of the given ID if the property value is null.
|
java.lang.String |
getName(java.lang.String id)
Returns the value of property "name" or delegates the call to the
sandboxed feature of the given ID if the property value is null.
|
java.lang.String |
getPreferredApplication(java.lang.String id)
Returns the value of property "preferredApplication" or delegates the call
to the sandboxed feature of the given ID if the property value is null.
|
java.lang.Object |
getProperty(java.lang.String id,
java.lang.String key)
Returns the property of a feature.
|
java.lang.String |
getShortDescription(java.lang.String id)
Returns the value of property "shortDescription" or delegates the call to
the sandboxed feature of the given ID if the property value is null.
|
protected void |
initialize(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Object>> featureInfo)
Invoked by the constructors to initialize the collection.
|
boolean |
isHidden(java.lang.String id)
Returns the value of property "isHidden" or delegates the call to the
sandboxed feature of the given ID if the property value is null.
|
boolean |
isPermitted(java.lang.String id)
Returns the value of property "isPermitted" or delegates the call to the
sandboxed feature of the given ID if the property value is null.
|
java.util.Iterator<java.lang.String> |
iterator()
Returns an iterator over the IDs of the
SandboxedFeature s in
this collection. |
protected java.util.Map<java.lang.String,java.lang.Object> |
loadProperties(java.lang.String id)
Loads all properties of a feature.
|
static SimpleSandboxedFeatures |
newInstance(java.util.Properties p)
Creates a new instance from a collection of properties.
|
SandboxedFeature |
newSandboxedFeatureInstance(java.lang.String id)
Returns a new instance of the specified
SandboxedFeature . |
static SimpleSandboxedFeatures |
newSystemInstance()
Creates a new instance based on a line-oriented property file whose URL is
specified by system property
"oracle.adf.share.sandbox.util.SimpleSandboxedFeatures.url".
|
java.lang.String |
toString() |
getInstance, getSandboxedFeature, newPropertyCache
public static final SandboxedFeatures EMPTY_COLLECTION
public SimpleSandboxedFeatures()
protected SimpleSandboxedFeatures(int initialCapacity)
initialCapacity
- the initial capacityjava.lang.IllegalArgumentException
- if the initial capacity is negativeprotected void initialize(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Object>> featureInfo)
featureInfo
- the empty map to be populated. The keys should be
SandboxedFeature
IDs while the values
should be the property maps of the features. A
property map is a map where the keys are property names
and the values are property values. The given map
maintains the insertion order.protected java.util.Map<java.lang.String,java.lang.Object> loadProperties(java.lang.String id)
id
- the ID of the SandboxedFeature
null
if this method is
not implemented, or if the properties cannot be loaded. An empty
map should be returned instead of null
in case the
implementation has determined that there is no property associated
with the given feature.getProperty(java.lang.String, java.lang.String)
public final java.lang.Object getProperty(java.lang.String id, java.lang.String key)
initialize(Map)
. If no
parameter map is found for the given ID,
loadProperties(String)
is called to retrieve the property
map. If the returned property map is not null, it is put in the cache.
Once the property map is cached for the given ID,
loadProperties(String)
will not be called again for the given
ID.getProperty
in class SandboxedFeatures
id
- the ID of the SandboxedFeature
key
- the property keyjava.lang.IllegalArgumentException
- if the given ID is invalidloadProperties(java.lang.String)
public final java.util.Iterator<java.lang.String> iterator()
SandboxedFeatures
SandboxedFeature
s in
this collection.iterator
in interface java.lang.Iterable<java.lang.String>
iterator
in class SandboxedFeatures
SandboxedFeature
s in
the collectionpublic SandboxedFeature newSandboxedFeatureInstance(java.lang.String id)
SandboxedFeatures
SandboxedFeature
.newSandboxedFeatureInstance
in class SandboxedFeatures
id
- the ID of the sandboxed featurepublic java.lang.String getName(java.lang.String id)
getName
in class SandboxedFeatures
id
- the ID of the SandboxedFeature
SandboxedFeatures.getSandboxedFeature(java.lang.String)
public java.lang.String getShortDescription(java.lang.String id)
getShortDescription
in class SandboxedFeatures
id
- the ID of the SandboxedFeature
SandboxedFeatures.getSandboxedFeature(java.lang.String)
public java.lang.String getAdditionalInformation(java.lang.String id)
getAdditionalInformation
in class SandboxedFeatures
id
- the ID of the SandboxedFeature
SandboxedFeatures.getSandboxedFeature(java.lang.String)
public java.lang.String getPreferredApplication(java.lang.String id)
getPreferredApplication
in class SandboxedFeatures
id
- the ID of the SandboxedFeature
SandboxedFeatures.getSandboxedFeature(java.lang.String)
public java.lang.String getIcon(java.lang.String id)
getIcon
in class SandboxedFeatures
id
- the ID of the SandboxedFeature
SandboxedFeatures.getSandboxedFeature(java.lang.String)
public boolean isHidden(java.lang.String id)
isHidden
in class SandboxedFeatures
id
- the ID of the SandboxedFeature
SandboxedFeatures.getSandboxedFeature(java.lang.String)
public boolean isPermitted(java.lang.String id)
isPermitted
in class SandboxedFeatures
id
- the ID of the SandboxedFeature
SandboxedFeatures.getSandboxedFeature(java.lang.String)
public java.lang.String toString()
toString
in class java.lang.Object
public static SimpleSandboxedFeatures newInstance(java.util.Properties p)
p
- the properties that describe the instancejava.lang.IllegalArgumentException
- if the given collection is nullpublic static SimpleSandboxedFeatures newSystemInstance()
java.lang.IllegalArgumentException
- if the specified URL is invalid, or an
error occurred while reading the resource