U
    d/e                     @   sr   d Z ddlmZ ddlmZmZmZmZ G dd dZG dd dZ	G d	d
 d
Z
G dd dZG dd dZdS )z&Request/response of DeleteObjects API.    )absolute_import   )Element
SubElementfindallfindtextc                   @   s"   e Zd ZdZdddZdd ZdS )DeleteObjectz"Delete object request information.Nc                 C   s   || _ || _d S N)_name_version_id)selfname
version_id r   7/tmp/pip-unpacked-wheel-xery97c7/minio/deleteobjects.py__init__   s    zDeleteObject.__init__c                 C   s4   t |d}t |d| j | jdk	r0t |d| j |S )Convert to XML.ZObjectKeyN	VersionId)r   r
   r   )r   elementr   r   r   toxml   s
    

zDeleteObject.toxml)N__name__
__module____qualname____doc__r   r   r   r   r   r   r      s   
r   c                   @   s"   e Zd ZdZdddZdd ZdS )	DeleteRequestzDelete object request.Fc                 C   s   || _ || _d S r	   )_object_list_quiet)r   object_listquietr   r   r   r   +   s    zDeleteRequest.__init__c                 C   s4   t d}| jrt|dd | jD ]}|| q |S )r   ZDeleteZQuiettrue)r   r   r   r   r   )r   r   objr   r   r   r   /   s    
zDeleteRequest.toxmlN)Fr   r   r   r   r   r   (   s   
r   c                   @   sT   e Zd ZdZdd Zedd Zedd Zedd	 Zed
d Z	e
dd ZdS )DeletedObjectzDeleted object information.c                 C   s   || _ || _|| _|| _d S r	   )r
   r   _delete_marker_delete_marker_version_id)r   r   r   delete_markerdelete_marker_version_idr   r   r   r   <   s    zDeletedObject.__init__c                 C   s   | j S z	Get name.r
   r   r   r   r   r   C   s    zDeletedObject.namec                 C   s   | j S zGet version ID.r   r*   r   r   r   r   H   s    zDeletedObject.version_idc                 C   s   | j S )zGet delete marker.)r$   r*   r   r   r   r&   M   s    zDeletedObject.delete_markerc                 C   s   | j S )zGet delete marker version ID.)r%   r*   r   r   r   r'   R   s    z&DeletedObject.delete_marker_version_idc                 C   sL   t |dd}t |d}t |d}|dk	o2| dk}t |d}| ||||S )/Create new object with values from XML element.r   Tr   ZDeleteMarkerNTrueZDeleteMarkerVersionId)r   title)clsr   r   r   r&   r'   r   r   r   fromxmlW   s    


zDeletedObject.fromxmlN)r   r   r   r   r   propertyr   r   r&   r'   classmethodr1   r   r   r   r   r#   9   s   



r#   c                   @   sT   e Zd ZdZdd Zedd Zedd Zedd	 Zed
d Z	e
dd ZdS )DeleteErrorzDelete error information.c                 C   s   || _ || _|| _|| _d S r	   )_code_messager
   r   )r   codemessager   r   r   r   r   r   g   s    zDeleteError.__init__c                 C   s   | j S )zGet error code.)r5   r*   r   r   r   r7   m   s    zDeleteError.codec                 C   s   | j S )zGet error message.)r6   r*   r   r   r   r8   r   s    zDeleteError.messagec                 C   s   | j S r(   r)   r*   r   r   r   r   w   s    zDeleteError.namec                 C   s   | j S r+   r,   r*   r   r   r   r   |   s    zDeleteError.version_idc                 C   s8   t |dd}t |d}t |d}t |d}| ||||S )r-   ZCodeTMessager   r   )r   )r0   r   r7   r8   r   r   r   r   r   r1      s
    


zDeleteError.fromxmlN)r   r   r   r   r   r2   r7   r8   r   r   r3   r1   r   r   r   r   r4   d   s   



r4   c                   @   s<   e Zd ZdZdd Zedd Zedd Zedd	 Z	d
S )DeleteResultzDelete object result.c                 C   s   || _ || _d S r	   )r   _error_list)r   r   
error_listr   r   r   r      s    zDeleteResult.__init__c                 C   s   | j S )zGet object list.)r   r*   r   r   r   r      s    zDeleteResult.object_listc                 C   s   | j S )zGet error list.)r;   r*   r   r   r   r<      s    zDeleteResult.error_listc                 C   sZ   t |d}g }|D ]}|t| qt |d}g }|D ]}|t| q:| ||S )r-   ZDeletedError)r   appendr#   r1   r4   )r0   r   elementsr   tagr<   r   r   r   r1      s    

zDeleteResult.fromxmlN)
r   r   r   r   r   r2   r   r<   r3   r1   r   r   r   r   r:      s   

r:   N)r   
__future__r   xmlr   r   r   r   r   r   r#   r4   r:   r   r   r   r   <module>   s   +'