Changeset 411

Show
Ignore:
Timestamp:
01/22/03 00:30:44 (6 years ago)
Author:
sholloway
Message:

*** empty log message ***

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/RBTelepathy/RBTelepathy/Packet/Builder.py

    r398 r411  
    2525 
    2626import weakref 
    27 from RBFoundation.XMLClassBuilder import *  
     27from RBFoundation.XMLClassBuilder import XMLClassBuilder  
     28 
     29#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     30#~ Constants / Variables / Etc.  
     31#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     32 
     33RBMessagingNamespace = 'http://namespaces.runeblade.com/RBMessaging' 
     34RBNamespaceSynonyms = { 
     35    'RuneBladeMessaging': RBMessagingNamespace, 
     36    'RBMessaging': RBMessagingNamespace, 
     37    'RBM': RBMessagingNamespace, 
     38    None: RBMessagingNamespace, 
     39    } 
    2840 
    2941#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    3143#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3244 
     45class ChildELementErrorFactory(object): 
     46    def __call__(self, owner, parent, node, attributes, namespacemap): 
     47        raise KeyError, '"%s" is not a valid subchild of "%s"' % (node[1], parent.__node__) 
     48 
     49#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     50 
     51class RootMessageErrorFactory(object): 
     52    def __call__(self, owner, parent, node, attributes, namespacemap): 
     53        raise KeyError, '"%s" is not a valid topl level element' % (node[1], ) 
     54 
     55#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     56 
    3357class StreamPacketBuilder(XMLClassBuilder): 
     58    NamespaceSynonyms = RBNamespaceSynonyms 
     59    DefaultNamespace = RBNamespaceSynonyms[None] 
    3460    BuildPacket = XMLClassBuilder.Parse 
    3561 
  • trunk/RBTelepathy/RBTelepathy/Packet/__init__.py

    r409 r411  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 from RBFoundation.XMLClassBuilder import ElementFactory as EF 
    27 from RBFoundation import XMLClassBuilder 
    28 from RBFoundation.XMLObjectify import BaseObjectifiedXML, ObjectifiedXML 
    29 import XMLBuilder 
    30 import XMLMessageElements 
    31 import XMLStreamElements 
     26import XMLBuilder as _XMLBuilder 
    3227 
    3328#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    3530#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3631 
    37 RBMessagingNamespace = 'http://namespaces.runeblade.com/RBMessaging' 
    38 StandardNamespaceSynonyms = { 
    39     'RBMessaging': RBMessagingNamespace, 
    40     None: RBMessagingNamespace, 
    41     } 
     32StandardStreamPacketBuilder = _XMLBuilder.StreamPacketBuilder 
     33RBMessagingNamespace = _XMLBuilder.RBMessagingNamespace 
     34DefaultNamespace = _XMLBuilder.RBNamespaceSynonyms[None] 
     35Namespace = _XMLBuilder.RBMessagingNamespace 
    4236 
    43 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    44 #~ Definitions  
    45 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     37#class RootMessage(XMLMessageElements.Message, XMLClassBuilder.XMLClassBuilderBaseMixin): 
     38#    NamespaceSynonyms = StandardNamespaceSynonyms 
     39#    DefaultNamespace = NamespaceSynonyms[None] 
     40#    ElementFactories = XMLClassBuilder.ElementFactorySet({ 
     41#            (RBMessagingNamespace, 'stream'): XMLStreamElements.StreamFormatFactory(), 
     42#            (RBMessagingNamespace, 'to'): EF.Static(XMLMessageElements.URIAddressElement), 
     43#            (RBMessagingNamespace, 'from'): EF.Static(XMLMessageElements.URIAddressElement), 
     44#            #(RBMessagingNamespace, ): ChildELementErrorFactory(), 
     45#            None: EF.Static(ObjectifiedXML), 
     46#        }) 
    4647 
    47 class ChildELementErrorFactory(object): 
    48     def __call__(self, owner, parent, node, attributes, namespacemap): 
    49         raise KeyError, '"%s" is not a valid subchild of "%s"' % (node[1], parent.__node__) 
     48#    def _xmlChildFactory(self, owner, parent, node, attributes, namespacemap): 
     49#        return self.ElementFactorySet._GetElementFactory(owner, parent, node, attributes, namespacemap) 
    5050 
    51 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    52  
    53 class RootMessageErrorFactory(object): 
    54     def __call__(self, owner, parent, node, attributes, namespacemap): 
    55         raise KeyError, '"%s" is not a valid topl level element' % (node[1], ) 
    56  
    57 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    58  
    59 class RootMessage(XMLMessageElements.Message, XMLClassBuilder.XMLClassBuilderBaseMixin): 
    60     NamespaceSynonyms = StandardNamespaceSynonyms 
    61     DefaultNamespace = NamespaceSynonyms[None] 
    62     ElementFactories = XMLClassBuilder.ElementFactorySet({ 
    63             (RBMessagingNamespace, 'stream'): XMLStreamElements.StreamFormatFactory(), 
    64             (RBMessagingNamespace, 'to'): EF.Static(XMLMessageElements.URIAddressElement), 
    65             (RBMessagingNamespace, 'from'): EF.Static(XMLMessageElements.URIAddressElement), 
    66             (RBMessagingNamespace, ): ChildELementErrorFactory(), 
    67             None: EF.Static(ObjectifiedXML), 
    68         }) 
    69  
    70     def _xmlChildFactory(self, owner, parent, node, attributes, namespacemap): 
    71         return self.ElementFactorySet._GetElementFactory(owner, parent, node, attributes, namespacemap) 
    72  
    73 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    74  
    75 class StandardStreamPacketBuilder(XMLBuilder.StreamPacketBuilder): 
    76     NamespaceSynonyms = StandardNamespaceSynonyms 
    77     DefaultNamespace = NamespaceSynonyms[None] 
    78     ElementFactories = XMLClassBuilder.ElementFactorySet({ 
    79             (RBMessagingNamespace, 'message'): EF.Static(RootMessage), 
    80             (RBMessagingNamespace, 'error'): EF.Static(RootMessage), 
    81             (RBMessagingNamespace, ): RootMessageErrorFactory(), 
    82             None: EF.Static(RootMessage), 
    83         }) 
    84