ó
zkF[c           @   se   d  d l  Z  d  d l m Z d  d l m Z d  d l m Z d Z d Z d e j	 f d „  ƒ  YZ
 d S(	   iÿÿÿÿN(   t   User(   t   InvalidEncryptionConfigError(   t   handlert   DefaultKmsKeyNamet   EncryptionConfigurationt   EncryptionConfigc           B   s;   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s5   Encapsulates the EncryptionConfiguration XML documentc         C   s   d  |  _ d |  _ d  S(   Ni    (   t   Nonet   default_kms_key_namet   parse_level(   t   self(    (    s7   lib/python2.7/site-packages/boto/gs/encryptionconfig.pyt   __init__!   s    	c         C   s/   |  j  | k r+ t d | |  j  f ƒ ‚ n  d S(   s#   Verify parse level for a given tag.s"   Invalid tag %s at parse level %d: N(   R   R   (   R	   t   tagt   level(    (    s7   lib/python2.7/site-packages/boto/gs/encryptionconfig.pyt   validateParseLevel'   s    c         C   sp   | t  k r. |  j | d ƒ |  j d 7_ n> | t k r\ |  j | d ƒ |  j d 7_ n t d | ƒ ‚ d S(   s,   SAX XML logic for parsing new element found.i    i   s   Unsupported tag N(   t   ENCRYPTION_CONFIGR   R   t   DEFAULT_KMS_KEY_NAMER   (   R	   t   namet   attrst
   connection(    (    s7   lib/python2.7/site-packages/boto/gs/encryptionconfig.pyt   startElement-   s    c         C   s   | t  k r. |  j | d ƒ |  j d 8_ nM | t k rk |  j | d ƒ |  j d 8_ | j ƒ  |  _ n t d | ƒ ‚ d S(   s,   SAX XML logic for parsing new element found.i   i   s   Unsupported end tag N(   R   R   R   R   t   stripR   R   (   R	   R   t   valueR   (    (    s7   lib/python2.7/site-packages/boto/gs/encryptionconfig.pyt
   endElement8   s    c         C   sT   d t  g } |  j r6 | j d t |  j t f ƒ n  | j d t  ƒ d j | ƒ S(   s?   Convert EncryptionConfig object into XML string representation.s   <%s>s   <%s>%s</%s>s   </%s>t    (   R   R   t   appendR   t   join(   R	   t   s(    (    s7   lib/python2.7/site-packages/boto/gs/encryptionconfig.pyt   to_xmlD   s    	(   t   __name__t
   __module__t   __doc__R
   R   R   R   R   (    (    (    s7   lib/python2.7/site-packages/boto/gs/encryptionconfig.pyR      s   				(   t   typest   boto.gs.userR    t   boto.exceptionR   t   xml.saxR   R   R   t   ContentHandlerR   (    (    (    s7   lib/python2.7/site-packages/boto/gs/encryptionconfig.pyt   <module>   s   