com.sap.netweaver.bc.rf.mi

Class AbstractManager

java.lang.Object
  extended by com.sap.netweaver.bc.rf.mi.AbstractManager
All Implemented Interfaces:
IManager, IComponent, IComponentInfo, IConfigurable, IContainer, IContextualizable, ILifecycleInfo, IStartable, IThreadSafe, IResourceEventSender, IEventSender

public abstract class AbstractManager
extends Object
implements IManager, IResourceEventSender, IThreadSafe, IContainer, IConfigurable, IStartable, IComponentInfo, ILifecycleInfo

Abstract base class for repository managers.

Created 20. März 2003


Nested Class Summary
static class AbstractManager.ResourceEventType
           
 class AbstractManager.RMVarEvent
          This class is used internally by the RF.
 
Field Summary
protected  IConfiguration config
          This manager's configuration
protected  String prefix
           
protected  ComponentStateHandler stateHandler
           
static int VAR_TYPE_LOGICAL
           
static int VAR_TYPE_NONE
           
static int VAR_TYPE_PHYSICAL
           
 
Constructor Summary
AbstractManager()
          Construct object of class AbstractManager.
 
Method Summary
protected  void checkNotReconfigurableAttributes(String[] notReconfigurable, IConfiguration newConfig)
          Helper method for reconfigure() implementations.
 void configure(IConfiguration config)
          Passes the configuration data to the configurable.
 void contextualize(IContext context)
          Pass the context to the component.
protected  Properties convertConfigToProperties(IConfiguration config, String prefix)
          Helper method for conversion of configuration data into properties.
 boolean equals(Object other)
           
 boolean eventsEnabled()
          Returns true if standard resource events should be sent by the framework.
 IBasicVersioningManager getBasicVersioningManager()
           
 IBindingManager getBindingManager()
           
 IComponentManager getComponentManager()
          Returns the component manager for accessing this container's child components.
 IConfiguration getConfig()
           
 IContentManager getContentManager()
           
 Date getCreationDate()
          Returns the date and time of the creation of the component instance.
 String getDescription()
           
 String getDescription(Locale locale)
          Returns a description of the components purpose or null .
 IResourceEventBroker getEventBroker()
          Returns the event broker assigned to this repository.
 IEventList getEvents()
          Returns a list of event templates for all possible events of this sender.
 IEventList getEvents(IResource resource)
          This method is used to report all possible events for a resource.
 String getId()
          Get the unique id of the repository manager (usually assigned and made unique through the configuration framework).
 IIdMapperManager getIdMapperManager()
           
 ConfigurationException getLastConfigurationException()
          Returns the exception thrown in the last call to IConfigurable.configure(IConfiguration), or IReconfigurable.reconfigure(IConfiguration).
 Date getLastReconfigurationDate()
          Returns the date and time of the last reconfiguration of this component.
 ILockManager getLockManager()
           
 String getName()
          Returns the component's human-readable name or null .
 NameInfo getNameInfo()
          Get the NameInfo of a repository manager.
 INamespaceManager getNamespaceManager()
           
 Date getNextAutoRestartDate()
          Returns the date and time of the next automatic restart of the component.
 Properties getProperties()
          Returns some arbitrary properties with information about the component or null .
 IPropertyManager getPropertyManager()
           
 String getRidPrefix()
          Get the root token of a resource id, this resource manager claims responsibility for.
 ISecurityManager getSecurityManager()
           
 StartupException getStartupException()
          Returns the exception thrown in the last call to IStartable.start(), Can be null .
 ComponentState getState()
          Returns the current life-cycle state of the component.
 Map getSubManagers()
          Get map of sub managers indexed by sub manager interface, e.g. a repository manager with a content and property sub manager implemented in one class and a separate security sub manager implemented in another class, returns a map with the content and property sub manager added twice via the content sub manager interface and the property sub manager interface and the security sub manager via the security sub manager interface.
 ITypeManager getTypeManager()
           
 IVariantManager getVariantManager()
           
 int hashCode()
           
 boolean mustSendResourceEventType(int type)
          ResourceImpl will call this method to check if a given resource event type must be sent at all.
protected  void reconfigureDescription(IConfiguration newConfig)
           
protected  boolean reconfigureSecurityManager(IConfiguration newConfig)
          Must be called by the RM implementation in its reconfigure() method if reconfiguration of security managers at runtime must be supported.
protected  void registerSecurityManager(String name, String manager)
           
 IResourceEvent sendEvent(IResource resource, int type, String correlationId, Object param, Integer variantResType)
          The Repository Framework will call this method to send the standard resource events.
 IVariantResourceEvent sendLREvent(IResource resource, int type, String correlationId, Object param, int subType, IResource physicalResource)
          The Repository Framework will call this method to send the standard resource events for variant resources.
protected  void sendRepositoryEvent(IResourceHandle handle, AbstractManager.ResourceEventType type, Object param)
          The Repository Manager implementation might use this method to generate resource events.
protected  void sendRepositoryVariantEvent(IResourceHandle lrHandle, IResourceHandle prHandle, AbstractManager.ResourceEventType type, Object param, boolean prEvent)
          Send an event for a variant resource - both physical and logical resource handles have to be specified.
 IResourceEvent sendSpecialMoveEvent(IResource resource, int type, String correlationId, Object param, RID specialRID)
          The Repository Framework will call this method to send the standard resource events
protected  void shutDownImpl()
          The implementation must overwrite this method if it has to release resources acquired during shutdown.
 void start()
          A component must implement this method if it has initial startup handling to do before being accessible (acquire resources, open connections to remote systems, etc).
protected  void startUpImpl()
          The implementation must overwrite this method if it has initial startup handling to do (acquire resources, open connections to remote systems, etc).
 void stop()
          This method is only called once during the life-time of a component.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.sap.netweaver.bc.rf.mi.IManager
getSupportedOptions, lookup, lookup, lookup
 

Field Detail

stateHandler

protected final ComponentStateHandler stateHandler

config

protected IConfiguration config
This manager's configuration


prefix

protected String prefix

VAR_TYPE_NONE

public static final int VAR_TYPE_NONE
See Also:
Constant Field Values

VAR_TYPE_LOGICAL

public static final int VAR_TYPE_LOGICAL
See Also:
Constant Field Values

VAR_TYPE_PHYSICAL

public static final int VAR_TYPE_PHYSICAL
See Also:
Constant Field Values
Constructor Detail

AbstractManager

public AbstractManager()
Construct object of class AbstractManager.

Method Detail

getConfig

public IConfiguration getConfig()

getVariantManager

public IVariantManager getVariantManager()

getBindingManager

public IBindingManager getBindingManager()

getIdMapperManager

public IIdMapperManager getIdMapperManager()

getSecurityManager

public ISecurityManager getSecurityManager()

getNamespaceManager

public INamespaceManager getNamespaceManager()

getTypeManager

public ITypeManager getTypeManager()

getPropertyManager

public IPropertyManager getPropertyManager()

getLockManager

public ILockManager getLockManager()

getBasicVersioningManager

public IBasicVersioningManager getBasicVersioningManager()

getContentManager

public IContentManager getContentManager()

getId

public String getId()
Description copied from interface: IManager
Get the unique id of the repository manager (usually assigned and made unique through the configuration framework).

Specified by:
getId in interface IManager
Returns:
unique id of the repository manager

getRidPrefix

public String getRidPrefix()
Description copied from interface: IManager
Get the root token of a resource id, this resource manager claims responsibility for. The framework will call this method to know which repository manager to call when a resource having the matching root token needs to be handled.

Specified by:
getRidPrefix in interface IManager
Returns:
root token of a resource id, this resource manager claims responsibility for

getNameInfo

public NameInfo getNameInfo()
Description copied from interface: IManager
Get the NameInfo of a repository manager. The NameInfo contains information about the restrictions for resource and collection names.

Specified by:
getNameInfo in interface IManager
Returns:
information about the restrictions for resource and collection names

getSubManagers

public Map getSubManagers()
Description copied from interface: IManager
Get map of sub managers indexed by sub manager interface, e.g. a repository manager with a content and property sub manager implemented in one class and a separate security sub manager implemented in another class, returns a map with the content and property sub manager added twice via the content sub manager interface and the property sub manager interface and the security sub manager via the security sub manager interface.

Specified by:
getSubManagers in interface IManager
Returns:
map of sub managers indexed by sub manager interface

getEventBroker

public IResourceEventBroker getEventBroker()
Returns the event broker assigned to this repository. This method is used by the Repository Framework or client components. If the repository manager must generate events it must use the sendRepositoryEvent(IResourceHandle, AbstractManager.ResourceEventType, Object) method.

Returns:
the event broker assigned to this repository.

getDescription

public String getDescription()

getState

public final ComponentState getState()
Description copied from interface: ILifecycleInfo
Returns the current life-cycle state of the component. Can be null .

Specified by:
getState in interface ILifecycleInfo
Returns:
the current life-cycle state of the component. Can be null .

getCreationDate

public final Date getCreationDate()
Description copied from interface: ILifecycleInfo
Returns the date and time of the creation of the component instance. Can be null . This property usually makes sense only for components that implement the IThreadSafe interface.

Specified by:
getCreationDate in interface ILifecycleInfo
Returns:
the date and time of the creation of the component instance. Can be null .

getEvents

public IEventList getEvents()
Description copied from interface: IEventSender
Returns a list of event templates for all possible events of this sender. The event instances contained in the list are "templates", that means the event parameter is not relevant. The broker will call it to build a list of all possible events of all registered event senders.

Specified by:
getEvents in interface IEventSender
Returns:
a list of event templates for all possible events of this sender.

getEvents

public IEventList getEvents(IResource resource)
Description copied from interface: IResourceEventSender
This method is used to report all possible events for a resource. The broker will call it to build a list of all possible events of alle registered event senders.

Specified by:
getEvents in interface IResourceEventSender
Parameters:
resource - The resource
Returns:
events

getComponentManager

public IComponentManager getComponentManager()
Description copied from interface: IContainer
Returns the component manager for accessing this container's child components.

Specified by:
getComponentManager in interface IContainer
Returns:
the component manager for accessing this container's child components.

getName

public String getName()
Description copied from interface: IComponentInfo
Returns the component's human-readable name or null .

Specified by:
getName in interface IComponentInfo
Returns:
the component's human-readable name or null .

getDescription

public String getDescription(Locale locale)
Description copied from interface: IComponentInfo
Returns a description of the components purpose or null .

Specified by:
getDescription in interface IComponentInfo
Parameters:
locale - Selects the language of the description text - can be null .
Returns:
a description of the components purpose or null .

getProperties

public Properties getProperties()
Description copied from interface: IComponentInfo
Returns some arbitrary properties with information about the component or null .

Specified by:
getProperties in interface IComponentInfo
Returns:
some arbitrary properties with information about the component or null .

convertConfigToProperties

protected final Properties convertConfigToProperties(IConfiguration config,
                                                     String prefix)
Helper method for conversion of configuration data into properties.

Parameters:
config - to be converted to properties
prefix - to prepend to all attribute names
Returns:
all attributes of config as properties

getLastConfigurationException

public ConfigurationException getLastConfigurationException()
Description copied from interface: ILifecycleInfo
Returns the exception thrown in the last call to IConfigurable.configure(IConfiguration), or IReconfigurable.reconfigure(IConfiguration). Can be null .

Specified by:
getLastConfigurationException in interface ILifecycleInfo
Returns:
the last configuration exception. Can be null.

getStartupException

public StartupException getStartupException()
Description copied from interface: ILifecycleInfo
Returns the exception thrown in the last call to IStartable.start(), Can be null .

Specified by:
getStartupException in interface ILifecycleInfo
Returns:
the startup exception. Can be null.

getLastReconfigurationDate

public Date getLastReconfigurationDate()
Description copied from interface: ILifecycleInfo
Returns the date and time of the last reconfiguration of this component. Can be null .

Specified by:
getLastReconfigurationDate in interface ILifecycleInfo
Returns:
the date and time of the last reconfiguration of this component. Can be null .

getNextAutoRestartDate

public Date getNextAutoRestartDate()
Description copied from interface: ILifecycleInfo
Returns the date and time of the next automatic restart of the component. Can be null .

Specified by:
getNextAutoRestartDate in interface ILifecycleInfo
Returns:
the date and time of the next automatic restart of the component. Can be null .
See Also:
AutoRestartException

mustSendResourceEventType

public final boolean mustSendResourceEventType(int type)
ResourceImpl will call this method to check if a given resource event type must be sent at all.

Parameters:
type - the type of ResourceEvent to send
Returns:
true, if the given ResourceEvent type has to be sent, false if no receiver registered for this ResourceEvent type

sendEvent

public final IResourceEvent sendEvent(IResource resource,
                                      int type,
                                      String correlationId,
                                      Object param,
                                      Integer variantResType)
                               throws WcmException
The Repository Framework will call this method to send the standard resource events.

Throws:
WcmException

sendLREvent

public final IVariantResourceEvent sendLREvent(IResource resource,
                                               int type,
                                               String correlationId,
                                               Object param,
                                               int subType,
                                               IResource physicalResource)
                                        throws WcmException
The Repository Framework will call this method to send the standard resource events for variant resources.

Throws:
WcmException

sendSpecialMoveEvent

public final IResourceEvent sendSpecialMoveEvent(IResource resource,
                                                 int type,
                                                 String correlationId,
                                                 Object param,
                                                 RID specialRID)
                                          throws WcmException
The Repository Framework will call this method to send the standard resource events

Throws:
WcmException

sendRepositoryEvent

protected final void sendRepositoryEvent(IResourceHandle handle,
                                         AbstractManager.ResourceEventType type,
                                         Object param)
                                  throws ResourceException
The Repository Manager implementation might use this method to generate resource events. This can be necessary in case the manager wants to generate events for it's own event types which will be received by a specialized component (e.g. Service). To create new event types the static class AbstractManager.ResourceEventType has to be extended. This class specifies the predefined Repository Framework events but usually it is not necessary for a manager to send these events for standard operations (delete, create, etc.) because these event types are generated by the framework.

Parameters:
handle - The resource handle to attach to the event. If null is specified this method does nothing.
type - The event type
param - The event parameters
Throws:
ResourceException

sendRepositoryVariantEvent

protected final void sendRepositoryVariantEvent(IResourceHandle lrHandle,
                                                IResourceHandle prHandle,
                                                AbstractManager.ResourceEventType type,
                                                Object param,
                                                boolean prEvent)
                                         throws ResourceException
Send an event for a variant resource - both physical and logical resource handles have to be specified.

Parameters:
lrHandle - The handle of the logical resource that will be attached to the event
prHandle - The handle of the physicalresource that will be attached to the event
type -
param -
prEvent - true if the event should be created for the physical resource (not the logical resource).
Throws:
ResourceException
See Also:
sendRepositoryEvent(IResourceHandle, AbstractManager.ResourceEventType, Object)

eventsEnabled

public boolean eventsEnabled()
Returns true if standard resource events should be sent by the framework.

Returns:
true if standard resource events should be sent by the framework.

configure

public final void configure(IConfiguration config)
                     throws ConfigurationException
Description copied from interface: IConfigurable
Passes the configuration data to the configurable. This method will by called by the CRT only once. It is called after construction and contextualization and before startup (if implemented).

Specified by:
configure in interface IConfigurable
Parameters:
config - the component's configuration data.
Throws:
ConfigurationException - Exception raised in failure situation

start

public final void start()
                 throws StartupException
Description copied from interface: IStartable
A component must implement this method if it has initial startup handling to do before being accessible (acquire resources, open connections to remote systems, etc). This method is only called once during the life-time of a component except an AutoRestartException was thrown.

Specified by:
start in interface IStartable
Throws:
StartupException - If the initialization failed because neccessary resources could not be allocated.

stop

public final void stop()
Description copied from interface: IStartable
This method is only called once during the life-time of a component. It is called by the CRT when the component was removed from the configuration or the system shuts down. A stopped component can not be (re)started. After a shutdown the component instance will be finalized by the Java VM as soon as no other components in the system holds a reference to it.

Specified by:
stop in interface IStartable

contextualize

public void contextualize(IContext context)
                   throws ContextException
Description copied from interface: IContextualizable
Pass the context to the component.

Specified by:
contextualize in interface IContextualizable
Parameters:
context - The context objects
Throws:
ContextException - if the context is invalid

startUpImpl

protected void startUpImpl()
                    throws ConfigurationException,
                           StartupException
The implementation must overwrite this method if it has initial startup handling to do (acquire resources, open connections to remote systems, etc). Accoring to the contract of the IStartable interface of the CRT this method will be called only once. It will be called on systen start up or when a new instance of this component is added to the persistence configuration.

Throws:
ConfigurationException
StartupException

shutDownImpl

protected void shutDownImpl()
The implementation must overwrite this method if it has to release resources acquired during shutdown. Accoring to the contract of the IStartable interface of the CRT this method will be called only once. It will be called when the component is removed from the persistent configuration or when the system shuts down.


checkNotReconfigurableAttributes

protected final void checkNotReconfigurableAttributes(String[] notReconfigurable,
                                                      IConfiguration newConfig)
                                               throws ConfigurationException
Helper method for reconfigure() implementations. Throws a configuration exception if any of the specified attributes or any of the not reconfigurable framework attributes (e.g. prefix) has changed.

Parameters:
notReconfigurable - An array of names of attributes that cannot be canged wihout restarting the component/server.
newConfig - The new configuration data received as argument of the reconfigure() method.
Throws:
ConfigurationException

registerSecurityManager

protected void registerSecurityManager(String name,
                                       String manager)

reconfigureSecurityManager

protected final boolean reconfigureSecurityManager(IConfiguration newConfig)
                                            throws ConfigurationException
Must be called by the RM implementation in its reconfigure() method if reconfiguration of security managers at runtime must be supported.

Parameters:
newConfig - The new configuration data (paramater of the reconfigure() method).
Returns:
true if the security manager was changed (removed, added or different sub manager), false otherwise.
Throws:
ConfigurationException - If the new sub manager can not be started. If the sub manager implements other sub manager interfaces than ISecurityManager. If the sub manager does not implement ISecurityManager. If the sub manager does not extend AbstractRepositorySubManager.

reconfigureDescription

protected final void reconfigureDescription(IConfiguration newConfig)

toString

public String toString()
Overrides:
toString in class Object

equals

public final boolean equals(Object other)
Overrides:
equals in class Object

hashCode

public final int hashCode()
Overrides:
hashCode in class Object
Access Rights

This class can be accessed from:


SC DC Public Part ACH
[sap.com] KMC-CM [sap.com] tc/km/frwk api EP-KM-CM
[sap.com] KMC-WPC [sap.com] tc/kmc/wpc/wpcfacade api EP-PIN-WPC-WCM


Copyright 2014 SAP AG Complete Copyright Notice