Class ComponentMetadata
- java.lang.Object
-
- org.apache.felix.scr.impl.metadata.ComponentMetadata
-
public class ComponentMetadata extends java.lang.Object
This class holds the information associated to a component in the descriptor
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CONFIGURATION_POLICY_IGNORE
static java.lang.String
CONFIGURATION_POLICY_OPTIONAL
static java.lang.String
CONFIGURATION_POLICY_REQUIRE
private static java.util.Set<java.lang.String>
CONFIGURATION_POLICY_VALID
private static java.lang.String
IMPLEMENTATION_CLASS_DUPLICATE
private java.lang.String
m_activate
private boolean
m_activateDeclared
private java.util.List<java.lang.String>
m_activationFields
private boolean
m_configurableServiceProperties
private java.util.List<java.lang.String>
m_configurationPid
private java.lang.String
m_configurationPolicy
private boolean
m_configureWithInterfaces
private java.lang.String
m_deactivate
private boolean
m_deactivateDeclared
private boolean
m_delayedKeepInstances
private boolean
m_deleteCallsModify
private DSVersion
m_dsVersion
private boolean
m_enabled
private java.lang.String
m_factory
private java.util.Map<java.lang.String,java.lang.Object>
m_factoryProperties
private java.util.List<PropertyMetadata>
m_factoryPropertyMetaData
private java.lang.Boolean
m_immediate
private java.lang.String
m_implementationClassName
private java.lang.String
m_init
private java.lang.String
m_modified
private java.lang.String
m_name
private java.lang.Boolean
m_obsoleteFactoryComponentFactory
private boolean
m_persistentFactoryComponent
private java.util.Map<java.lang.String,java.lang.Object>
m_properties
private java.util.List<PropertyMetadata>
m_propertyMetaData
private java.util.List<ReferenceMetadata>
m_references
private ServiceMetadata
m_service
private boolean
m_validated
private static ServiceMetadata
SERVICE_DUPLICATE
private static byte
TypeBoolean
private static byte
TypeByte
private static byte
TypeChar
private static byte
TypeDouble
private static byte
TypeFloat
private static byte
TypeInteger
private static byte
TypeLong
private static byte
TypeShort
private static byte
TypeString
-
Constructor Summary
Constructors Constructor Description ComponentMetadata(DSVersion dsVersion)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addDependency(ReferenceMetadata newReference)
Used to add a reference metadata to the componentvoid
addFactoryProperty(PropertyMetadata newProperty)
Used to add a factory property to the instancevoid
addProperty(PropertyMetadata newProperty)
Used to add a property to the instanceprivate void
collectStrings(java.util.Map.Entry<java.lang.String,java.lang.Object> entry, java.util.Set<java.lang.String> strings)
void
collectStrings(java.util.Set<java.lang.String> strings)
java.lang.String
getActivate()
Returns the name of the activate methodjava.util.List<java.lang.String>
getActivationFields()
Returns the names of the activation fieldsjava.util.List<java.lang.String>
getConfigurationPid()
Returns the configuration pid for the component.java.lang.String
getConfigurationPolicy()
Returns the configuration Policyjava.lang.String
getDeactivate()
Returns the name of the deactivate methodjava.util.List<ReferenceMetadata>
getDependencies()
Returns the dependency descriptorsDSVersion
getDSVersion()
Returns the namespace code of the namespace of the component element declaring this component.java.lang.String
getFactoryIdentifier()
Returns the factory identifierjava.util.Map<java.lang.String,java.lang.Object>
getFactoryProperties()
Returns the factory properties.(package private) java.util.List<PropertyMetadata>
getFactoryPropertyMetaData()
Returns the list of factory property meta data.java.lang.String
getImplementationClassName()
Returns the name of the implementation classjava.lang.String
getModified()
Returns the name of the modified methodjava.lang.String
getName()
Returns the name of the componentint
getNumberOfConstructorParameters()
Returns the number of constructor parameters (0 is default)int
getPidIndex(TargetedPID pid)
java.util.Map<java.lang.String,java.lang.Object>
getProperties()
Returns the properties.(package private) java.util.List<PropertyMetadata>
getPropertyMetaData()
Returns the list of property meta data.ServiceMetadata
getServiceMetadata()
Returns the associated ServiceMetadataServiceMetadata.Scope
getServiceScope()
private byte
getType(java.lang.Class<?> typeClass)
boolean
isActivateDeclared()
Returns whether the activate method has been declared in the descriptor or not.boolean
isConfigurableServiceProperties()
boolean
isConfigurationIgnored()
Returnstrue
if the configuration policy is configured toCONFIGURATION_POLICY_IGNORE
.boolean
isConfigurationOptional()
Returnstrue
if the configuration policy is configured toCONFIGURATION_POLICY_OPTIONAL
.boolean
isConfigurationPidDeclared()
Returns whether the configuration-pid has been declared in the descriptor or not.boolean
isConfigurationRequired()
Returnstrue
if the configuration policy is configured toCONFIGURATION_POLICY_REQUIRE
.boolean
isConfigureWithInterfaces()
boolean
isDeactivateDeclared()
Returns whether the deactivate method has been declared in the descriptor or not.boolean
isDelayedKeepInstances()
boolean
isDeleteCallsModify()
boolean
isEnabled()
Returns the value of the enabled flagboolean
isFactory()
Test to see if this service is a factoryboolean
isImmediate()
Returns the flag that defines the activation policy for the component.boolean
isObsoleteFactoryComponentFactory()
boolean
isPersistentFactoryComponent()
static ComponentMetadata
load(java.io.DataInputStream in, MetadataStoreHelper.MetaDataReader metaDataReader)
(package private) static java.lang.Object
loadPropertyValue(java.io.DataInputStream in, MetadataStoreHelper.MetaDataReader metaDataReader)
void
setActivate(java.lang.String activate)
Sets the name of the activate methodvoid
setActivationFields(java.lang.String[] fields)
void
setConfigurableServiceProperties(boolean configurableServiceProperties)
void
setConfigurationPid(java.lang.String[] configurationPid)
Setter for the configuration-pid component (since DS 1.2)void
setConfigurationPolicy(java.lang.String configurationPolicy)
Sets the configuration policyvoid
setConfigureWithInterfaces(boolean configureWithInterfaces)
void
setDeactivate(java.lang.String deactivate)
Sets the name of the deactivate methodvoid
setDelayedKeepInstances(boolean delayedKeepInstances)
void
setDeleteCallsModify(boolean deleteCallsModify)
void
setEnabled(boolean enabled)
Setter for the enabled propertyvoid
setFactoryIdentifier(java.lang.String factoryIdentifier)
void
setImmediate(boolean immediate)
Setter for the immediate propertyvoid
setImplementationClassName(java.lang.String implementationClassName)
Sets the name of the implementation classvoid
setInit(java.lang.String value)
void
setModified(java.lang.String modified)
Sets the name of the modified methodvoid
setName(java.lang.String name)
Setter for the namevoid
setObsoleteFactoryComponentFactory(boolean obsoleteFactoryComponentFactory)
void
setPersistentFactoryComponent(boolean persistentFactoryComponent)
void
setService(ServiceMetadata service)
Used to set a ServiceMetadata object.void
store(java.io.DataOutputStream out, MetadataStoreHelper.MetaDataWriter metaDataWriter)
(package private) void
storePropertyValue(java.lang.Object value, java.io.DataOutputStream out, MetadataStoreHelper.MetaDataWriter metaDataWriter)
void
validate()
Method used to verify if the semantics of this metadata are correct(package private) org.osgi.service.component.ComponentException
validationFailure(java.lang.String reason)
Returns aComponentException
for this component with the given explanation for failure.
-
-
-
Field Detail
-
CONFIGURATION_POLICY_REQUIRE
public static final java.lang.String CONFIGURATION_POLICY_REQUIRE
- See Also:
- Constant Field Values
-
CONFIGURATION_POLICY_IGNORE
public static final java.lang.String CONFIGURATION_POLICY_IGNORE
- See Also:
- Constant Field Values
-
CONFIGURATION_POLICY_OPTIONAL
public static final java.lang.String CONFIGURATION_POLICY_OPTIONAL
- See Also:
- Constant Field Values
-
CONFIGURATION_POLICY_VALID
private static final java.util.Set<java.lang.String> CONFIGURATION_POLICY_VALID
-
IMPLEMENTATION_CLASS_DUPLICATE
private static final java.lang.String IMPLEMENTATION_CLASS_DUPLICATE
- See Also:
- Constant Field Values
-
SERVICE_DUPLICATE
private static final ServiceMetadata SERVICE_DUPLICATE
-
m_dsVersion
private final DSVersion m_dsVersion
-
m_name
private java.lang.String m_name
-
m_enabled
private boolean m_enabled
-
m_factory
private java.lang.String m_factory
-
m_immediate
private java.lang.Boolean m_immediate
-
m_implementationClassName
private java.lang.String m_implementationClassName
-
m_activate
private java.lang.String m_activate
-
m_activateDeclared
private boolean m_activateDeclared
-
m_deactivate
private java.lang.String m_deactivate
-
m_deactivateDeclared
private boolean m_deactivateDeclared
-
m_modified
private java.lang.String m_modified
-
m_configurationPolicy
private java.lang.String m_configurationPolicy
-
m_configurationPid
private java.util.List<java.lang.String> m_configurationPid
-
m_activationFields
private java.util.List<java.lang.String> m_activationFields
-
m_properties
private final java.util.Map<java.lang.String,java.lang.Object> m_properties
-
m_factoryProperties
private final java.util.Map<java.lang.String,java.lang.Object> m_factoryProperties
-
m_propertyMetaData
private final java.util.List<PropertyMetadata> m_propertyMetaData
-
m_factoryPropertyMetaData
private final java.util.List<PropertyMetadata> m_factoryPropertyMetaData
-
m_service
private ServiceMetadata m_service
-
m_references
private final java.util.List<ReferenceMetadata> m_references
-
m_configurableServiceProperties
private boolean m_configurableServiceProperties
-
m_persistentFactoryComponent
private boolean m_persistentFactoryComponent
-
m_deleteCallsModify
private boolean m_deleteCallsModify
-
m_obsoleteFactoryComponentFactory
private java.lang.Boolean m_obsoleteFactoryComponentFactory
-
m_configureWithInterfaces
private boolean m_configureWithInterfaces
-
m_delayedKeepInstances
private boolean m_delayedKeepInstances
-
m_init
private java.lang.String m_init
-
m_validated
private boolean m_validated
-
TypeString
private static final byte TypeString
- See Also:
- Constant Field Values
-
TypeLong
private static final byte TypeLong
- See Also:
- Constant Field Values
-
TypeDouble
private static final byte TypeDouble
- See Also:
- Constant Field Values
-
TypeFloat
private static final byte TypeFloat
- See Also:
- Constant Field Values
-
TypeInteger
private static final byte TypeInteger
- See Also:
- Constant Field Values
-
TypeByte
private static final byte TypeByte
- See Also:
- Constant Field Values
-
TypeChar
private static final byte TypeChar
- See Also:
- Constant Field Values
-
TypeBoolean
private static final byte TypeBoolean
- See Also:
- Constant Field Values
-
TypeShort
private static final byte TypeShort
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ComponentMetadata
public ComponentMetadata(DSVersion dsVersion)
-
-
Method Detail
-
setConfigurationPid
public void setConfigurationPid(java.lang.String[] configurationPid)
Setter for the configuration-pid component (since DS 1.2)- Parameters:
configurationPid
-
-
setName
public void setName(java.lang.String name)
Setter for the name- Parameters:
name
-
-
setEnabled
public void setEnabled(boolean enabled)
Setter for the enabled property- Parameters:
enabled
-
-
setFactoryIdentifier
public void setFactoryIdentifier(java.lang.String factoryIdentifier)
- Parameters:
factoryIdentifier
-
-
setImmediate
public void setImmediate(boolean immediate)
Setter for the immediate property- Parameters:
immediate
-
-
setImplementationClassName
public void setImplementationClassName(java.lang.String implementationClassName)
Sets the name of the implementation class- Parameters:
implementationClassName
- a class name
-
setConfigurationPolicy
public void setConfigurationPolicy(java.lang.String configurationPolicy)
Sets the configuration policy- Parameters:
configurationPolicy
- configuration policy- Since:
- 1.2.0 (DS 1.1)
-
setActivate
public void setActivate(java.lang.String activate)
Sets the name of the activate method- Parameters:
activate
- a method name- Since:
- 1.2.0 (DS 1.1)
-
setDeactivate
public void setDeactivate(java.lang.String deactivate)
Sets the name of the deactivate method- Parameters:
deactivate
- a method name- Since:
- 1.2.0 (DS 1.1)
-
setModified
public void setModified(java.lang.String modified)
Sets the name of the modified method- Parameters:
modified
- a method name- Since:
- 1.2.0 (DS 1.1)
-
addProperty
public void addProperty(PropertyMetadata newProperty)
Used to add a property to the instance- Parameters:
newProperty
- a property metadata object
-
addFactoryProperty
public void addFactoryProperty(PropertyMetadata newProperty)
Used to add a factory property to the instance- Parameters:
newProperty
- a property metadata object
-
setService
public void setService(ServiceMetadata service)
Used to set a ServiceMetadata object.- Parameters:
service
- a ServiceMetadata
-
addDependency
public void addDependency(ReferenceMetadata newReference)
Used to add a reference metadata to the component- Parameters:
newReference
- a new ReferenceMetadata to be added
-
setConfigurableServiceProperties
public void setConfigurableServiceProperties(boolean configurableServiceProperties)
-
setPersistentFactoryComponent
public void setPersistentFactoryComponent(boolean persistentFactoryComponent)
-
setDeleteCallsModify
public void setDeleteCallsModify(boolean deleteCallsModify)
-
setObsoleteFactoryComponentFactory
public void setObsoleteFactoryComponentFactory(boolean obsoleteFactoryComponentFactory)
-
setConfigureWithInterfaces
public void setConfigureWithInterfaces(boolean configureWithInterfaces)
-
setDelayedKeepInstances
public void setDelayedKeepInstances(boolean delayedKeepInstances)
-
setActivationFields
public void setActivationFields(java.lang.String[] fields)
-
setInit
public void setInit(java.lang.String value)
-
getDSVersion
public DSVersion getDSVersion()
Returns the namespace code of the namespace of the component element declaring this component. This is one of the XmlHandler.DS_VERSION_* constants.
-
getName
public java.lang.String getName()
Returns the name of the component- Returns:
- A string containing the name of the component
-
getConfigurationPid
public java.util.List<java.lang.String> getConfigurationPid()
Returns the configuration pid for the component. The pid is the one specified in the component's configuration-pid DS 1.2 attribute, if specified. Else the component name is used as the pid by default.
-
getPidIndex
public int getPidIndex(TargetedPID pid)
-
isConfigurationPidDeclared
public boolean isConfigurationPidDeclared()
Returns whether the configuration-pid has been declared in the descriptor or not.- Returns:
- whether the configuration-pid has method has been declared in the descriptor or not.
- Since:
- DS 1.2
-
isEnabled
public boolean isEnabled()
Returns the value of the enabled flag- Returns:
- a boolean containing the value of the enabled flag
-
getFactoryIdentifier
public java.lang.String getFactoryIdentifier()
Returns the factory identifier- Returns:
- A string containing a factory identifier or null
-
isImmediate
public boolean isImmediate()
Returns the flag that defines the activation policy for the component.This method may only be trusted after this instance has been validated by the
validate( )
call. Else it will either return the value of an explicitly set "immediate" attribute or return false if a service element or the factory attribute is set or true otherwise. This latter default value deduction may be unsafe while the descriptor has not been completely read.- Returns:
- a boolean that defines the activation policy
-
getImplementationClassName
public java.lang.String getImplementationClassName()
Returns the name of the implementation class- Returns:
- the name of the implementation class
-
getConfigurationPolicy
public java.lang.String getConfigurationPolicy()
Returns the configuration Policy- Returns:
- the configuration policy
- Since:
- 1.2.0 (DS 1.1)
-
getActivate
public java.lang.String getActivate()
Returns the name of the activate method- Returns:
- the name of the activate method
- Since:
- 1.2.0 (DS 1.1)
-
isActivateDeclared
public boolean isActivateDeclared()
Returns whether the activate method has been declared in the descriptor or not.- Returns:
- whether the activate method has been declared in the descriptor or not.
- Since:
- 1.2.0 (DS 1.1)
-
getNumberOfConstructorParameters
public int getNumberOfConstructorParameters()
Returns the number of constructor parameters (0 is default)- Returns:
- The number of constructor parameters
- Since:
- 2.1.0 (DS 1.4)
-
getActivationFields
public java.util.List<java.lang.String> getActivationFields()
Returns the names of the activation fields- Returns:
- the list of activation fields or
null
- Since:
- 2.1.0 (DS 1.4)
-
getDeactivate
public java.lang.String getDeactivate()
Returns the name of the deactivate method- Returns:
- the name of the deactivate method
- Since:
- 1.2.0 (DS 1.1)
-
isDeactivateDeclared
public boolean isDeactivateDeclared()
Returns whether the deactivate method has been declared in the descriptor or not.- Returns:
- whether the deactivate method has been declared in the descriptor or not.
- Since:
- 1.2.0 (DS 1.1)
-
getModified
public java.lang.String getModified()
Returns the name of the modified method- Returns:
- the name of the modified method
- Since:
- 1.2.0 (DS 1.1)
-
getServiceMetadata
public ServiceMetadata getServiceMetadata()
Returns the associated ServiceMetadata- Returns:
- a ServiceMetadata object or null if the Component does not provide any service
-
getServiceScope
public ServiceMetadata.Scope getServiceScope()
-
getProperties
public java.util.Map<java.lang.String,java.lang.Object> getProperties()
Returns the properties.- Returns:
- the properties as a Dictionary
-
getFactoryProperties
public java.util.Map<java.lang.String,java.lang.Object> getFactoryProperties()
Returns the factory properties.- Returns:
- the factory properties as a Dictionary
-
getPropertyMetaData
java.util.List<PropertyMetadata> getPropertyMetaData()
Returns the list of property meta data. Note: This method is intended for unit testing only- Returns:
- the list of property meta data.
-
getFactoryPropertyMetaData
java.util.List<PropertyMetadata> getFactoryPropertyMetaData()
Returns the list of factory property meta data. Note: This method is intended for unit testing only- Returns:
- the list of property meta data.
-
getDependencies
public java.util.List<ReferenceMetadata> getDependencies()
Returns the dependency descriptors- Returns:
- a Collection of dependency descriptors
-
isFactory
public boolean isFactory()
Test to see if this service is a factory- Returns:
- true if it is a factory, false otherwise
-
isConfigurationRequired
public boolean isConfigurationRequired()
Returnstrue
if the configuration policy is configured toCONFIGURATION_POLICY_REQUIRE
.
-
isConfigurationIgnored
public boolean isConfigurationIgnored()
Returnstrue
if the configuration policy is configured toCONFIGURATION_POLICY_IGNORE
.
-
isConfigurationOptional
public boolean isConfigurationOptional()
Returnstrue
if the configuration policy is configured toCONFIGURATION_POLICY_OPTIONAL
.
-
isConfigurableServiceProperties
public boolean isConfigurableServiceProperties()
-
isPersistentFactoryComponent
public boolean isPersistentFactoryComponent()
-
isDeleteCallsModify
public boolean isDeleteCallsModify()
-
isObsoleteFactoryComponentFactory
public boolean isObsoleteFactoryComponentFactory()
-
isConfigureWithInterfaces
public boolean isConfigureWithInterfaces()
-
isDelayedKeepInstances
public boolean isDelayedKeepInstances()
-
validate
public void validate()
Method used to verify if the semantics of this metadata are correct
-
validationFailure
org.osgi.service.component.ComponentException validationFailure(java.lang.String reason)
Returns aComponentException
for this component with the given explanation for failure.- Parameters:
reason
- The explanation for failing to validate this component.
-
collectStrings
public void collectStrings(java.util.Set<java.lang.String> strings)
-
collectStrings
private void collectStrings(java.util.Map.Entry<java.lang.String,java.lang.Object> entry, java.util.Set<java.lang.String> strings)
-
store
public void store(java.io.DataOutputStream out, MetadataStoreHelper.MetaDataWriter metaDataWriter) throws java.io.IOException
- Throws:
java.io.IOException
-
load
public static ComponentMetadata load(java.io.DataInputStream in, MetadataStoreHelper.MetaDataReader metaDataReader) throws java.io.IOException
- Throws:
java.io.IOException
-
loadPropertyValue
static java.lang.Object loadPropertyValue(java.io.DataInputStream in, MetadataStoreHelper.MetaDataReader metaDataReader) throws java.io.IOException
- Throws:
java.io.IOException
-
storePropertyValue
void storePropertyValue(java.lang.Object value, java.io.DataOutputStream out, MetadataStoreHelper.MetaDataWriter metaDataWriter) throws java.io.IOException
- Throws:
java.io.IOException
-
getType
private byte getType(java.lang.Class<?> typeClass)
-
-