Class ComponentMetadata


  • public class ComponentMetadata
    extends java.lang.Object
    This class holds the information associated to a component in the descriptor
    • 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_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
    • 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
      • 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()
        Returns true if the configuration policy is configured to CONFIGURATION_POLICY_REQUIRE.
      • isConfigurationIgnored

        public boolean isConfigurationIgnored()
        Returns true if the configuration policy is configured to CONFIGURATION_POLICY_IGNORE.
      • isConfigurationOptional

        public boolean isConfigurationOptional()
        Returns true if the configuration policy is configured to CONFIGURATION_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 a ComponentException 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)
      • 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)