READ
public static int READ
READ access value.
READWRITE
public static int READWRITE
READ and WRITE access value.
WRITE
public static int WRITE
WRITE access value.
adminId
protected AgentId adminId
Identifier of the destination's administrator.
clients
protected Hashtable clients
Table of the destination readers and writers.
destId
protected AgentId destId
Identifier of the agent hosting the destination.
dmqId
protected AgentId dmqId
Identifier of the dead message queue this destination must send its
dead messages to, if any.
freeReading
protected boolean freeReading
true
if the READ access is granted to everybody.
freeWriting
protected boolean freeWriting
true
if the WRITE access is granted to everybody.
canBeDeleted
public boolean canBeDeleted()
Returns true
if the destination might be deleted.
doReact
protected void doReact(AgentId from,
DeleteNot not)
Method implementing the reaction to a
DeleteNot
notification requesting the deletion of the destination.
The processing is done in subclasses if the sender is an administrator.
doReact
protected void doReact(AgentId from,
UnknownAgent not)
Method implementing the reaction to an
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.
doReact
protected void doReact(AgentId from,
ClientMessages not)
throws AccessException
Method implementing the reaction to a
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.
doReact
protected void doReact(AgentId from,
Monit_FreeAccess not)
throws AccessException
Method implementing the reaction to a Monit_FreeAccess
notification requesting the free access status of this destination.
AccessException
- If the requester is not the administrator.
doReact
protected void doReact(AgentId from,
Monit_GetReaders not)
throws AccessException
Method implementing the reaction to a Monit_GetReaders
notification requesting the identifiers of the destination's readers.
AccessException
- If the requester is not the administrator.
doReact
protected void doReact(AgentId from,
Monit_GetWriters not)
throws AccessException
Method implementing the reaction to a Monit_GetWriters
notification requesting the identifiers of the destination's writers.
AccessException
- If the requester is not the administrator.
doReact
protected void doReact(AgentId from,
SetDMQRequest not)
throws AccessException
Method implementing the reaction to a SetDMQRequest
notification setting the dead message queue identifier for this
destination.
AccessException
- If the requester is not the administrator.
doReact
protected void doReact(AgentId from,
SpecialAdminRequest not)
Method implementing the reaction to a
SpecialAdminRequest
notification requesting the special administration of the destination.
isAdministrator
protected boolean isAdministrator(AgentId client)
Checks the administering permission of a given client agent.
client
- AgentId of the client requesting an admin permission.
isReader
protected boolean isReader(AgentId client)
Checks the reading permission of a given client agent.
client
- AgentId of the client requesting a reading permission.
isWriter
protected boolean isWriter(AgentId client)
Checks the writing permission of a given client agent.
client
- AgentId of the client requesting a writing permission.
sendToDMQ
protected void sendToDMQ(ClientMessages deadMessages,
AgentId dmqId)
Sends dead messages to the appropriate dead message queue.
deadMessages
- The dead messages.dmqId
- Identifier of the dead message queue to use,
null
if not provided.
specialProcess
protected void specialProcess(Notification not)
Abstract method to be implemented by subclasses for specifically
processing notifications.