U
    3ìd¿  ã                   @   sJ   d dl Z d dlmZ d dlmZ d dlmZ dZdZG dd„ dej	ƒZ
dS )	é    N)ÚUser)ÚInvalidEncryptionConfigError)ÚhandlerZDefaultKmsKeyNameZEncryptionConfigurationc                   @   s8   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ ZdS )ÚEncryptionConfigz5Encapsulates the EncryptionConfiguration XML documentc                 C   s   d | _ d| _d S )Nr   )Údefault_kms_key_nameÚparse_level)Úself© r	   ú</tmp/pip-unpacked-wheel-d7dsrkjd/boto/gs/encryptionconfig.pyÚ__init__!   s    zEncryptionConfig.__init__c                 C   s    | j |krtd|| j f ƒ‚dS )z#Verify parse level for a given tag.z"Invalid tag %s at parse level %d: N)r   r   )r   ÚtagÚlevelr	   r	   r
   ÚvalidateParseLevel'   s    
ÿz#EncryptionConfig.validateParseLevelc                 C   sX   |t kr$|  |d¡ |  jd7  _n0|tkrH|  |d¡ |  jd7  _ntd| ƒ‚dS )ú,SAX XML logic for parsing new element found.r   é   zUnsupported tag N)ÚENCRYPTION_CONFIGr   r   ÚDEFAULT_KMS_KEY_NAMEr   )r   ÚnameÚattrsÚ
connectionr	   r	   r
   ÚstartElement-   s    zEncryptionConfig.startElementc                 C   sb   |t kr$|  |d¡ |  jd8  _n:|tkrR|  |d¡ |  jd8  _| ¡ | _ntd| ƒ‚dS )r   r   é   zUnsupported end tag N)r   r   r   r   Ústripr   r   )r   r   Úvaluer   r	   r	   r
   Ú
endElement8   s    zEncryptionConfig.endElementc                 C   s>   dt  g}| jr&| dt| jtf ¡ | dt  ¡ d |¡S )z?Convert EncryptionConfig object into XML string representation.z<%s>z<%s>%s</%s>z</%s>Ú )r   r   Úappendr   Újoin)r   Úsr	   r	   r
   Úto_xmlD   s    
þzEncryptionConfig.to_xmlN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r	   r	   r	   r
   r      s   r   )ÚtypesZboto.gs.userr   Zboto.exceptionr   Zxml.saxr   r   r   ÚContentHandlerr   r	   r	   r	   r
   Ú<module>   s   