예제 #1
0
    def encodeXML(self, msg):

        sb = self.OT + self.FIPA_MESSAGE_TAG
        if msg.getPerformative():
            sb += " " + self.ACT_TAG + '="' + msg.getPerformative() + '"'
        sb += self.CT

        #sender
        if msg.getSender():
            sb += self.OT + self.SENDER_TAG + self.CT
            sb += self.encodeAid(msg.getSender())
            sb += self.ET + self.SENDER_TAG + self.CT

        #receivers
        if len(msg.getReceivers()) > 0:
            sb += self.OT + self.RECEIVER_TAG + self.CT
            for r in msg.getReceivers():
                sb += self.encodeAid(r)
            sb += self.ET + self.RECEIVER_TAG + self.CT

        if msg.getContent():
            sb += self.encodeTag(self.CONTENT_TAG, str(msg.getContent()))

        if msg.getLanguage():
            sb += self.encodeTag(self.LANGUAGE_TAG, msg.getLanguage())

        if msg.getEncoding():
            sb += self.encodeTag(self.ENCODING_TAG, msg.getEncoding())

        if msg.getOntology():
            sb += self.encodeTag(self.ONTOLOGY_TAG, msg.getOntology())

        if msg.getProtocol():
            sb += self.encodeTag(self.PROTOCOL_TAG, msg.getProtocol())

        if msg.getReplyWith():
            sb += self.encodeTag(self.REPLY_WITH_TAG, msg.getReplyWith())

        if msg.getInReplyTo():
            sb += self.encodeTag(self.IN_REPLY_TO_TAG, msg.getInReplyTo())

        if msg.getReplyBy():
            date = BasicFipaDateTime()
            date.fromString(str(msg.getReplyBy()))
            sb += self.encodeTag(self.REPLY_BY_TAG, str(date))

        if len(msg.getReplyTo()) > 0:
            sb += self.OT + self.REPLY_TO_TAG + self.CT
            for e in msg.getReplyTo():
                sb += self.encodeAid(e)
            sb += self.ET + self.REPLY_TO_TAG + self.CT

        if msg.getConversationId():
            sb += self.encodeTag(self.CONVERSATION_ID_TAG,
                                 msg.getConversationId())

        sb += self.ET + self.FIPA_MESSAGE_TAG + self.CT

        return sb
예제 #2
0
파일: ACLParser.py 프로젝트: exic/spade2
	def encodeXML(self, msg):

		sb = self.OT + self.FIPA_MESSAGE_TAG
		if msg.getPerformative():
			sb += " " + self.ACT_TAG + '="' + msg.getPerformative() + '"'
		sb += self.CT

		#sender
		if msg.getSender():
			sb += self.OT + self.SENDER_TAG + self.CT
			sb += self.encodeAid(msg.getSender())
			sb += self.ET + self.SENDER_TAG + self.CT

		#receivers
		if len(msg.getReceivers()) > 0:
			sb += self.OT + self.RECEIVER_TAG + self.CT
			for r in msg.getReceivers():
				sb += self.encodeAid(r)
			sb += self.ET + self.RECEIVER_TAG + self.CT

		
		if msg.getContent():
			sb += self.encodeTag(self.CONTENT_TAG, str(msg.getContent()))

		if msg.getLanguage():
			sb += self.encodeTag(self.LANGUAGE_TAG, msg.getLanguage())

		if msg.getEncoding():
			sb += self.encodeTag(self.ENCODING_TAG, msg.getEncoding())

		if msg.getOntology():
			sb += self.encodeTag(self.ONTOLOGY_TAG, msg.getOntology())

		if msg.getProtocol():
			sb += self.encodeTag(self.PROTOCOL_TAG, msg.getProtocol())

		if msg.getReplyWith():
			sb += self.encodeTag(self.REPLY_WITH_TAG, msg.getReplyWith())

		if msg.getInReplyTo():
			sb += self.encodeTag(self.IN_REPLY_TO_TAG, msg.getInReplyTo())

		if msg.getReplyBy():
			date = BasicFipaDateTime()
			date.fromString( str(msg.getReplyBy()) )
			sb += self.encodeTag(self.REPLY_BY_TAG, str(date))

		if len(msg.getReplyTo()) > 0:
			sb += self.OT + self.REPLY_TO_TAG + self.CT
			for e in msg.getReplyTo():
				sb += self.encodeAid(e)
			sb += self.ET + self.REPLY_TO_TAG + self.CT

		if msg.getConversationId():
			sb += self.encodeTag(self.CONVERSATION_ID_TAG, msg.getConversationId())

		sb += self.ET + self.FIPA_MESSAGE_TAG + self.CT

		return sb
예제 #3
0
파일: XMLCodec.py 프로젝트: exic/spade2
	def endElement(self, localName):
    
		#Capture the value the attributes of class
		if self.AID_NAME.lower() == localName.lower():
			self.aid.setName(self.accumulator)

		elif self.AID_ADDRESS.lower() == localName.lower():
			self.aid.addAddress(self.accumulator)

		elif self.TO_TAG.lower() == localName.lower():
			self.aidTag = ""

		elif self.FROM_TAG.lower() == localName.lower():
			self.aidTag = ""

		elif self.INTENDED_TAG.lower() == localName.lower():
			self.aidTag = ""

		elif self.AID_TAG.lower() == localName.lower():
			if self.aidTag == self.TO_TAG:
				self.env.addTo(self.aid)
			elif self.aidTag == self.FROM_TAG:
				self.env.setFrom(self.aid)
			elif self.aidTag == self.INTENDED_TAG:
				self.env.addIntendedReceiver(self.aid)

		elif self.COMMENTS_TAG.lower() == localName.lower():
			self.env.setComments(self.accumulator)

		elif self.REPRESENTATION_TAG.lower() == localName.lower():
			self.env.setAclRepresentation(self.accumulator)

		elif self.LENGTH_TAG.lower() == localName.lower():
			self.env.setPayloadLength( long(self.accumulator) )
			"""
			if(logger.isLoggable(Logger.WARNING))
				logger.log(Logger.FINE,"Length: "+env.getPayloadLength());
			"""

		elif self.ENCODING_TAG.lower() ==localName.lower():
			self.env.setPayloadEncoding(self.accumulator)

		elif self.DATE_TAG.lower() == localName.lower():
			bfdt= BasicFipaDateTime()
			bfdt.fromString(str(self.accumulator))
			self.env.setDate( bfdt )

		"""
		elif self.PROP_TAG.lower() == localName.lower():
			decodeProp(accumulator, prop);
		"""
		""" 
예제 #4
0
    def endElement(self, localName):

        #Capture the value the attributes of class
        if self.AID_NAME.lower() == localName.lower():
            self.aid.setName(self.accumulator)

        elif self.AID_ADDRESS.lower() == localName.lower():
            self.aid.addAddress(self.accumulator)

        elif self.TO_TAG.lower() == localName.lower():
            self.aidTag = ""

        elif self.FROM_TAG.lower() == localName.lower():
            self.aidTag = ""

        elif self.INTENDED_TAG.lower() == localName.lower():
            self.aidTag = ""

        elif self.AID_TAG.lower() == localName.lower():
            if self.aidTag == self.TO_TAG:
                self.env.addTo(self.aid)
            elif self.aidTag == self.FROM_TAG:
                self.env.setFrom(self.aid)
            elif self.aidTag == self.INTENDED_TAG:
                self.env.addIntendedReceiver(self.aid)

        elif self.COMMENTS_TAG.lower() == localName.lower():
            self.env.setComments(self.accumulator)

        elif self.REPRESENTATION_TAG.lower() == localName.lower():
            self.env.setAclRepresentation(self.accumulator)

        elif self.LENGTH_TAG.lower() == localName.lower():
            self.env.setPayloadLength(long(self.accumulator))
            """
            if(logger.isLoggable(Logger.WARNING))
                logger.log(Logger.FINE,"Length: "+env.getPayloadLength());
            """

        elif self.ENCODING_TAG.lower() == localName.lower():
            self.env.setPayloadEncoding(self.accumulator)

        elif self.DATE_TAG.lower() == localName.lower():
            bfdt = BasicFipaDateTime()
            bfdt.fromString(str(self.accumulator))
            self.env.setDate(bfdt)
        """
        elif self.PROP_TAG.lower() == localName.lower():
            decodeProp(accumulator, prop);
        """
        """
예제 #5
0
    def buildACL(self, m):
        """
        returns an ACLMessage object from a pyparsing.ParseResults object
        """

        #print repr(m)
        #print m.asXML()
        #print m.asList()

        msg = ACLMessage.ACLMessage()

        if 'msgtype' in m:
            msg.setPerformative(m['msgtype'])

        if 'sender' in m:
            msg.setSender(self.processAID(m['sender']))

        if 'receiver' in m:
            recv = m['receiver']
            for i in recv:
                msg.addReceiver(self.processAID(i))

        if 'content' in m:
            msg.setContent(m['content'])

        if 'reply-with' in m:
            msg.setReplyWith(m['reply-with'])

        if 'reply-by' in m:
            msg.setReplyBy(BasicFipaDateTime(m['reply-by']))

        if 'in-reply-to' in m:
            msg.setInReplyTo(m['in-reply-to'])

        if 'reply-to' in m:
            r = m['reply-to']
            for i in r:
                msg.AddReplyTo(self.processAID(i))

        if 'language' in m:
            msg.setLanguage(m['language'])

        if 'encoding' in m:
            msg.setEncoding(m['encoding'])

        if 'ontology' in m:
            msg.setOntology(m['ontology'])

        if 'protocol' in m:
            msg.setProtocol(m['protocol'])

        if 'conversation-id' in m:
            msg.setConversationId(m['conversation-id'])

        return msg
예제 #6
0
    def startElement(self, localName, attributes):

        #Detection of the begin of to or from tags
        self.accumulator = ""

        if self.TO_TAG.lower() == localName.lower():
            self.aid = aid()
            self.aidTag = self.TO_TAG
            #self.env.addTo(aid)

        elif self.FROM_TAG.lower() == localName.lower():
            self.aid = aid()
            self.aidTag = self.FROM_TAG
            #self.env.setFrom(aid)

        elif self.INTENDED_TAG.lower() == localName.lower():
            self.aid = aid()
            self.aidTag = self.INTENDED_TAG
            #self.env.addIntendedReceiver(self.aid)

        elif self.RECEIVED_TAG.lower() == localName.lower():
            self.env.setReceived(ReceivedObject())

        elif self.RECEIVED_BY.lower() == localName.lower():
            self.env.received.setBy(attributes.getValue(self.RECEIVED_ATTR))

        elif self.RECEIVED_FROM.lower() == localName.lower():
            self.env.received.setFrom(attributes.getValue(self.RECEIVED_ATTR))

        elif self.RECEIVED_DATE.lower() == localName.lower():
            self.env.received.setDate(
                BasicFipaDateTime(str(attributes.getValue(
                    self.RECEIVED_ATTR))))

        elif self.RECEIVED_ID.lower() == localName.lower():
            self.env.received.setId(attributes.getValue(self.RECEIVED_ATTR))

        elif self.RECEIVED_VIA.lower() == localName.lower():
            self.env.received.setVia(attributes.getValue(self.RECEIVED_ATTR))
        """
예제 #7
0
    def startElement(self, localName, attributes):

        self.accumulator = ""

        if self.FIPA_MESSAGE_TAG == localName.lower():
            self.msg.setPerformative(attributes.getValue(self.ACT_TAG))
            try:
                self.msg.setConversationId(
                    attributes.getValue(self.CONVERSATION_ID_TAG))

            except:
                pass

        if self.SENDER_TAG == localName.lower():
            self.aid = AID.aid()
            self.aidTag = self.SENDER_TAG

        if self.RECEIVER_TAG == localName.lower():
            self.aid = AID.aid()
            self.aidTag = self.RECEIVER_TAG

        if self.REPLY_TO_TAG == localName.lower():
            self.aid = AID.aid()
            self.aidTag = self.REPLY_TO_TAG

        if self.RESOLVERS_TAG == localName.lower():
            self.aid = AID.aid()
            self.aidTag = self.RESOLVERS_TAG

        if self.REPLY_BY_TAG == localName.lower():
            self.msg.setReplyBy(
                BasicFipaDateTime(attributes.getValue(self.TIME_TAG)))

        if self.NAME_TAG == localName.lower():
            self.aid.setName(attributes.getValue(self.ID_TAG))

        if self.URL_TAG == localName.lower():
            self.aid.addAddress(attributes.getValue(self.HREF_TAG))
예제 #8
0
파일: XMLCodec.py 프로젝트: exic/spade2
	def encodeXML(self, env):
		"""
		General Encoding of the envelope
		"""
     
		#Create the message XML
		sb = self.OT + self.ENVELOPE_TAG + self.CT
		sb = sb + self.OT + self.PARAMS_TAG + self.INDEX_ATTR + "1" + '"' + self.CT
    
		#Create tag TO
		tos = env.getTo()
		for agentid in tos:
			sb = sb + self.OT + self.TO_TAG + self.CT
			sb = sb + self.encodeAid(agentid)
			sb = sb + self.ET + self.TO_TAG + self.CT
    
		#Create tag from
		if env.getFrom() != None:
			sb = sb + self.OT + self.FROM_TAG + self.CT
			sb = sb + self.encodeAid( env.getFrom() )
			sb = sb + self.ET + self.FROM_TAG + self.CT
    
		#Create tag comments
		if env.getComments() != None and len(env.getComments()) > 0:
			sb = sb + self.encodeTag( self.COMMENTS_TAG, env.getComments() )
    
		#Create tag acl-representation
		if env.getAclRepresentation() != None:
			sb = sb + self.encodeTag( self.REPRESENTATION_TAG, env.getAclRepresentation() )
    
		#Create tag payload-length
			if env.getPayloadLength() != None:
				sb = sb + self.encodeTag( self.LENGTH_TAG, str(env.getPayloadLength()) )
    
		#Create tag payload-encoding
		if env.getPayloadEncoding() != None and len(env.getPayloadEncoding()) > 0:
			sb = sb + self.encodeTag( self.ENCODING_TAG, env.getPayloadEncoding() )
    
		#Create tag date
		#Create object BasicFipaDateTime
		if env.getDate() != None:
			date = BasicFipaDateTime()
			date.fromString( str(env.getDate()) )
			sb = sb + self.encodeTag( self.DATE_TAG, str(date) )

    
		#Create tag encrypted (NL: not sure it is still in FIPA)
		"""
		for i in env.getEncrypted():
			sb = sb + self.encodeTag( self.ENCRYPTED_TAG, str(i) )  
		"""
    
		#Create tag intended-receiver
		for i in env.getIntendedReceiver():
			sb = sb + self.OT + self.INTENDED_TAG + self.CT
			sb = sb + self.encodeAid(i)
			sb = sb + self.ET + self.INTENDED_TAG + self.CT
	  
		"""
		#Create tags for user properties
		for (i=env.getAllProperties();i.hasNext();) {
			encodeProp(sb,(Property)i.next());
		"""

		#Create tag received
		ro = env.getReceived()
		if ro != None:
			#Create tag received
			sb = sb + self.OT + self.RECEIVED_TAG + self.CT
			#Date  
			value = BasicFipaDateTime( ro.getDate() )
			if value != None:
				sb = sb + self.encodeOneLineTag( self.RECEIVED_DATE, self.RECEIVED_ATTR, str( value ) )
			#By
			value = ro.getBy()
			if value != None:
				sb = sb + self.encodeOneLineTag( self.RECEIVED_BY, self.RECEIVED_ATTR, value )
			#From
			value = ro.getFrom()
			if value != None:
				sb = sb + self.encodeOneLineTag( self.RECEIVED_FROM, self.RECEIVED_ATTR, value )
			#Id
			value = ro.getId()
			if value != None:
				sb = sb + self.encodeOneLineTag( self.RECEIVED_ID, self.RECEIVED_ATTR, value )
			#Via
			value = ro.getVia()
			if value != None:
				sb = sb + self.encodeOneLineTag( self.RECEIVED_VIA, self.RECEIVED_ATTR, value )

			sb = sb + self.ET + self.RECEIVED_TAG + self.CT 



		sb = sb + self.ET + self.PARAMS_TAG + self.CT
		sb = sb + self.ET + self.ENVELOPE_TAG + self.CT 
    
		return sb
예제 #9
0
    def encodeXML(self, env):
        """
        General Encoding of the envelope
        """

        #Create the message XML
        sb = self.OT + self.ENVELOPE_TAG + self.CT
        sb = sb + self.OT + self.PARAMS_TAG + self.INDEX_ATTR + "1" + '"' + self.CT

        #Create tag TO
        tos = env.getTo()
        for agentid in tos:
            sb = sb + self.OT + self.TO_TAG + self.CT
            sb = sb + self.encodeAid(agentid)
            sb = sb + self.ET + self.TO_TAG + self.CT

        #Create tag from
        if env.getFrom() is not None:
            sb = sb + self.OT + self.FROM_TAG + self.CT
            sb = sb + self.encodeAid(env.getFrom())
            sb = sb + self.ET + self.FROM_TAG + self.CT

        #Create tag comments
        if env.getComments() is not None and len(env.getComments()) > 0:
            sb = sb + self.encodeTag(self.COMMENTS_TAG, env.getComments())

        #Create tag acl-representation
        if env.getAclRepresentation() is not None:
            sb = sb + self.encodeTag(self.REPRESENTATION_TAG,
                                     env.getAclRepresentation())

            #Create tag payload-length
            if env.getPayloadLength() is not None:
                sb = sb + self.encodeTag(self.LENGTH_TAG,
                                         str(env.getPayloadLength()))

        #Create tag payload-encoding
        if env.getPayloadEncoding() is not None and len(
                env.getPayloadEncoding()) > 0:
            sb = sb + self.encodeTag(self.ENCODING_TAG,
                                     env.getPayloadEncoding())

        #Create tag date
        #Create object BasicFipaDateTime
        if env.getDate() is not None:
            date = BasicFipaDateTime()
            date.fromString(str(env.getDate()))
            sb = sb + self.encodeTag(self.DATE_TAG, str(date))

        #Create tag encrypted (NL: not sure it is still in FIPA)
        """
        for i in env.getEncrypted():
            sb = sb + self.encodeTag( self.ENCRYPTED_TAG, str(i) )
        """

        #Create tag intended-receiver
        for i in env.getIntendedReceiver():
            sb = sb + self.OT + self.INTENDED_TAG + self.CT
            sb = sb + self.encodeAid(i)
            sb = sb + self.ET + self.INTENDED_TAG + self.CT
        """
        #Create tags for user properties
        for (i=env.getAllProperties();i.hasNext();) {
            encodeProp(sb,(Property)i.next());
        """

        #Create tag received
        ro = env.getReceived()
        if ro is not None:
            #Create tag received
            sb = sb + self.OT + self.RECEIVED_TAG + self.CT
            #Date
            value = BasicFipaDateTime(ro.getDate())
            if value is not None:
                sb = sb + self.encodeOneLineTag(self.RECEIVED_DATE,
                                                self.RECEIVED_ATTR, str(value))
            #By
            value = ro.getBy()
            if value is not None:
                sb = sb + self.encodeOneLineTag(self.RECEIVED_BY,
                                                self.RECEIVED_ATTR, value)
            #From
            value = ro.getFrom()
            if value is not None:
                sb = sb + self.encodeOneLineTag(self.RECEIVED_FROM,
                                                self.RECEIVED_ATTR, value)
            #Id
            value = ro.getId()
            if value is not None:
                sb = sb + self.encodeOneLineTag(self.RECEIVED_ID,
                                                self.RECEIVED_ATTR, value)
            #Via
            value = ro.getVia()
            if value is not None:
                sb = sb + self.encodeOneLineTag(self.RECEIVED_VIA,
                                                self.RECEIVED_ATTR, value)

            sb = sb + self.ET + self.RECEIVED_TAG + self.CT

        sb = sb + self.ET + self.PARAMS_TAG + self.CT
        sb = sb + self.ET + self.ENVELOPE_TAG + self.CT

        return sb