|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.objectweb.joram.mom.dest.DestinationImpl
The DestinationImpl
class implements the common behaviour of
MOM destinations.
Field Summary | |
protected AgentId |
adminId
Identifier of the destination's administrator. |
protected java.util.Hashtable |
clients
Table of the destination readers and writers. |
protected AgentId |
destId
Identifier of the agent hosting the destination. |
protected AgentId |
dmqId
Identifier of the dead message queue this destination must send its dead messages to, if any. |
protected boolean |
freeReading
true if the READ access is granted to everybody. |
protected boolean |
freeWriting
true if the WRITE access is granted to everybody. |
static int |
READ
READ access value. |
static int |
READWRITE
READ and WRITE access value. |
static int |
WRITE
WRITE access value. |
Constructor Summary | |
DestinationImpl(AgentId destId,
AgentId adminId)
Constructs a DestinationImpl . |
Method Summary | |
boolean |
canBeDeleted()
Returns true if the destination might be deleted. |
protected void |
doReact(AgentId from,
ClientMessages not)
Method implementing the reaction to a ClientMessages
notification holding messages sent by a client. |
protected void |
doReact(AgentId from,
DeleteNot not)
Method implementing the reaction to a DeleteNot
notification requesting the deletion of the destination. |
protected void |
doReact(AgentId from,
Monit_FreeAccess not)
Method implementing the reaction to a Monit_FreeAccess
notification requesting the free access status of this destination. |
protected void |
doReact(AgentId from,
Monit_GetDMQSettings not)
Method implementing the reaction to a Monit_GetDMQSettings
notification requesting the destination's DMQ settings. |
protected void |
doReact(AgentId from,
Monit_GetReaders not)
Method implementing the reaction to a Monit_GetReaders
notification requesting the identifiers of the destination's readers. |
protected void |
doReact(AgentId from,
Monit_GetWriters not)
Method implementing the reaction to a Monit_GetWriters
notification requesting the identifiers of the destination's writers. |
protected void |
doReact(AgentId from,
SetDMQRequest not)
Method implementing the reaction to a SetDMQRequest
notification setting the dead message queue identifier for this
destination. |
protected void |
doReact(AgentId from,
SetRightRequest not)
Method implementing the reaction to a SetRightRequest
notification requesting rights to be set for a user. |
protected void |
doReact(AgentId from,
SpecialAdminRequest not)
Method implementing the reaction to a SpecialAdminRequest
notification requesting the special administration of the destination. |
protected void |
doReact(AgentId from,
UnknownAgent not)
Method implementing the reaction to an UnknownAgent
notification. |
protected boolean |
isAdministrator(AgentId client)
Checks the administering permission of a given client agent. |
protected boolean |
isReader(AgentId client)
Checks the reading permission of a given client agent. |
protected boolean |
isWriter(AgentId client)
Checks the writing permission of a given client agent. |
protected void |
processSetRight(AgentId user,
int right)
set user right. |
void |
react(AgentId from,
Notification not)
Distributes the received notifications to the appropriate reactions. |
protected void |
sendToDMQ(ClientMessages deadMessages,
AgentId dmqId)
Sends dead messages to the appropriate dead message queue. |
protected java.lang.Object |
specialAdminProcess(SpecialAdminRequest not)
|
protected abstract void |
specialProcess(Notification not)
Abstract method to be implemented by subclasses for specifically processing notifications. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected AgentId adminId
protected AgentId destId
protected boolean freeReading
true
if the READ access is granted to everybody.
protected boolean freeWriting
true
if the WRITE access is granted to everybody.
protected java.util.Hashtable clients
protected AgentId dmqId
public static int READ
public static int WRITE
public static int READWRITE
Constructor Detail |
public DestinationImpl(AgentId destId, AgentId adminId)
DestinationImpl
.
destId
- Identifier of the agent hosting the destination.adminId
- Identifier of the administrator of the destination.Method Detail |
public boolean canBeDeleted()
true
if the destination might be deleted.
public void react(AgentId from, Notification not) throws UnknownNotificationException
UnknownNotificationException
- If a received notification is
unexpected by the destination.protected void doReact(AgentId from, SetRightRequest not) throws AccessException
SetRightRequest
notification requesting rights to be set for a user.
AccessException
- If the requester is not the administrator.protected void processSetRight(AgentId user, int right) throws RequestException
RequestException
protected void doReact(AgentId from, SetDMQRequest not) throws AccessException
SetDMQRequest
notification setting the dead message queue identifier for this
destination.
AccessException
- If the requester is not the administrator.protected void doReact(AgentId from, Monit_GetReaders not) throws AccessException
Monit_GetReaders
notification requesting the identifiers of the destination's readers.
AccessException
- If the requester is not the administrator.protected void doReact(AgentId from, Monit_GetWriters not) throws AccessException
Monit_GetWriters
notification requesting the identifiers of the destination's writers.
AccessException
- If the requester is not the administrator.protected void doReact(AgentId from, Monit_FreeAccess not) throws AccessException
Monit_FreeAccess
notification requesting the free access status of this destination.
AccessException
- If the requester is not the administrator.protected void doReact(AgentId from, Monit_GetDMQSettings not) throws AccessException
Monit_GetDMQSettings
notification requesting the destination's DMQ settings.
AccessException
- If the requester is not the administrator.protected void doReact(AgentId from, ClientMessages not) throws AccessException
ClientMessages
notification holding messages sent by a client.
If the sender is not a writer on the destination the messages are sent to the DMQ and an exception is thrown. Otherwise, the processing of the received messages is performed in subclasses.
AccessException
- If the sender is not a WRITER on the
destination.protected void doReact(AgentId from, UnknownAgent not)
UnknownAgent
notification.
If the unknown agent is the DMQ, its identifier is set to null. If it is a client of the destination, it is removed. Specific processing is also done in subclasses.
protected void doReact(AgentId from, DeleteNot not)
DeleteNot
notification requesting the deletion of the destination.
The processing is done in subclasses if the sender is an administrator.
protected void doReact(AgentId from, SpecialAdminRequest not)
SpecialAdminRequest
notification requesting the special administration of the destination.
protected java.lang.Object specialAdminProcess(SpecialAdminRequest not) throws RequestException
RequestException
protected boolean isReader(AgentId client)
client
- AgentId of the client requesting a reading permission.protected boolean isWriter(AgentId client)
client
- AgentId of the client requesting a writing permission.protected boolean isAdministrator(AgentId client)
client
- AgentId of the client requesting an admin permission.protected void sendToDMQ(ClientMessages deadMessages, AgentId dmqId)
deadMessages
- The dead messages.dmqId
- Identifier of the dead message queue to use,
null
if not provided.protected abstract void specialProcess(Notification not)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |