jade.lang.acl
Class StringACLCodec

java.lang.Object
  |
  +--jade.lang.acl.StringACLCodec
All Implemented Interfaces:
ACLCodec

public class StringACLCodec
extends java.lang.Object
implements ACLCodec

This class implements the FIPA String codec for ACLMessages. Notice that it is not possible to convey a sequence of bytes over a StringACLCodec because the bytes with the 8th bit ON cannot properly converted into a char.

Version:
$Date: 2003/11/20 10:55:37 $ $Revision: 2.14 $
Author:
Fabio Bellifemine - CSELT S.p.A.

Nested Class Summary
 
Nested classes inherited from class jade.lang.acl.ACLCodec
ACLCodec.CodecException
 
Field Summary
static java.lang.String NAME
          String constant for the name of the ACL representation managed by this ACL codec.
 
Constructor Summary
StringACLCodec()
          constructor for the codec.
StringACLCodec(java.io.Reader r, java.io.Writer w)
          constructor for the codec.
 
Method Summary
static void appendACLExpression(java.lang.StringBuffer str, java.lang.String slotName, java.lang.String slotValue)
          append to the passed StringBuffer the slot name and value separated by a blank char and followed by a newline.
 ACLMessage decode()
          decode and parses the next message from the Reader passed in the constructor.
 ACLMessage decode(byte[] data)
          Recovers an ACLMessage object back from raw data, using the specific message representation to interpret the byte sequence.
 AID decodeAID()
          Parse an agent identifier, without it being included within an ACL message.
 byte[] encode(ACLMessage msg)
          If the content of the message is a byteSequence, then this method encodes the content in Base64 and automatically sets the value of the encoding slot.
 java.lang.String getName()
          Query the name of the message representation handled by this Codec object.
 void write(ACLMessage msg)
          encodes the message and writes it into the Writer passed in the constructor.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NAME

public static final java.lang.String NAME
String constant for the name of the ACL representation managed by this ACL codec.

See Also:
Constant Field Values
Constructor Detail

StringACLCodec

public StringACLCodec()
constructor for the codec. The standard input is used as an input stream of ACL messages. The standard output is used to write encoded ACL messages.


StringACLCodec

public StringACLCodec(java.io.Reader r,
                      java.io.Writer w)
constructor for the codec.

Method Detail

decode

public ACLMessage decode()
                  throws ACLCodec.CodecException
decode and parses the next message from the Reader passed in the constructor.

Returns:
the ACLMessage
Throws:
ACLCodec.CodecException - if any Exception occurs during the parsing/reading operation

decodeAID

public AID decodeAID()
              throws ACLCodec.CodecException
Parse an agent identifier, without it being included within an ACL message.

ACLCodec.CodecException

write

public void write(ACLMessage msg)
encodes the message and writes it into the Writer passed in the constructor. Notice that this method does not call flush on the writer.


encode

public byte[] encode(ACLMessage msg)
If the content of the message is a byteSequence, then this method encodes the content in Base64 and automatically sets the value of the encoding slot.

Specified by:
encode in interface ACLCodec
Parameters:
msg - The ACL message to encode.
Returns:
a byte array, containing the encoded message.
See Also:
ACLCodec.encode(ACLMessage msg)

decode

public ACLMessage decode(byte[] data)
                  throws ACLCodec.CodecException
Description copied from interface: ACLCodec
Recovers an ACLMessage object back from raw data, using the specific message representation to interpret the byte sequence.

Specified by:
decode in interface ACLCodec
Parameters:
data - The byte sequence containing the encoded message.
Returns:
A new ACLMessage object, built from the raw data.
Throws:
ACLCodec.CodecException - If some kind of syntax error occurs.
See Also:
ACLCodec.decode(byte[] data)

getName

public java.lang.String getName()
Description copied from interface: ACLCodec
Query the name of the message representation handled by this Codec object. The FIPA standard representations have a name starting with "fipa.acl.rep.".

Specified by:
getName in interface ACLCodec
Returns:
the name of this encoding according to the FIPA specifications

appendACLExpression

public static void appendACLExpression(java.lang.StringBuffer str,
                                       java.lang.String slotName,
                                       java.lang.String slotValue)
append to the passed StringBuffer the slot name and value separated by a blank char and followed by a newline. If the value contains a blank, then it is quoted. if the value is null or its length is zero, the method does nothing.



JADE