
    Æe                          G d  d      Z  G d d      Z G d de      Z G d de      Z G d d	      Z G d
 d      Z G d d      Zy)c                   n    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd ZddZd Zd Zd Zy)ObjectDBc                 P    || _         || _        g | _        |j                  | _        y N)db
validation	observersfiles)selfr   r   s      7/usr/lib/python3/dist-packages/rope/base/oi/objectdb.py__init__zObjectDB.__init__   s"    $XX
    c                     t        | j                        D ]<  }| j                  j                  |      r| j                  |= | j	                  |       > y r   )listr	   r   is_file_valid_file_removed)r
   files     r   validate_fileszObjectDB.validate_files   sF    $ 	)D??006JJt$""4(	)r   c                     || j                   vry t        | j                   |         D ]/  }| j                  j                  ||      r | j                   |   |= 1 y r   )r	   r   r   is_scope_valid)r
   r   keys      r   validate_filezObjectDB.validate_file   sS    tzz!

4() 	*C??11$<JJt$S)	*r   c                     || j                   vry | j                   j                  ||       | j                  |       | j                  |       y r   )r	   renamer   _file_added)r
   r   newfiles      r   
file_movedzObjectDB.file_moved   sA    tzz!

$(4 !r   c                 6    | j                   j                         S r   )r	   keysr
   s    r   	get_fileszObjectDB.get_files   s    zz  r   c                     | j                  ||d      }|j                  |      }| j                  j                  |      r|S y NTreadonly)_get_scope_infoget_returnedr   is_value_valid)r
   pathr   args
scope_inforesults         r   r&   zObjectDB.get_returned   E    ))$d)C
((.??))&1M 2r   c                     | j                  ||d      }|j                  |      }| j                  j                  |      r|S y r"   )r%   get_per_namer   r'   )r
   r(   r   namer*   r+   s         r   get_pernamezObjectDB.get_pername%   r,   r   c                 J    | j                  ||d      }|j                         S r"   )r%   get_call_infos)r
   r(   r   r*   s       r   get_callinfoszObjectDB.get_callinfos+   s(    ))$d)C
((**r   c                     | j                  ||d      }|j                  |      }| j                  j                  ||      r|j	                  ||       y y NFr#   )r%   r&   r   is_more_validadd_call)r
   r(   r   r)   returnedr*   old_returneds          r   add_callinfozObjectDB.add_callinfo/   sS    ))$e)D
!..t4??((<@h/ Ar   c                     | j                  ||d      }|j                  |      }| j                  j                  ||      r|j	                  ||       y y r5   )r%   r.   r   r6   save_per_name)r
   r(   r   r/   valuer*   	old_values          r   add_pernamezObjectDB.add_pername5   sR    ))$e)D
++D1	??((	:$$T51 ;r   c                 :    | j                   j                  |       y r   )r   append)r
   observers     r   add_file_list_observerzObjectDB.add_file_list_observer;   s    h'r   c                 8    | j                   j                          y r   )r   writer   s    r   rE   zObjectDB.write>   s    r   c                    || j                   vr8|r
t               S | j                   j                  |       | j                  |       || j                   |   vr*|r
t               S | j                   |   j	                  |       | j                   |   |   }t        |t              r4t        | j                   | j                   |   | j                   |   |          |S r   )r	   _NullScopeInfocreater   create_scope
isinstancedictprint)r
   r(   r   r$   r+   s        r   r%   zObjectDB._get_scope_infoA   s    tzz!%''JJd#T"djj&&%''JJt))#.D!#&fd#$**djj.

40@0EFr   c                 H    | j                   D ]  }|j                  |        y r   )r   removedr
   r(   rB   s      r   r   zObjectDB._file_removedP   s#     	#HT"	#r   c                 H    | j                   D ]  }|j                  |        y r   )r   addedrO   s      r   r   zObjectDB._file_addedT   s!     	!HNN4 	!r   c                     d}| j                   j                         D ]  }|t        |      z  } dj                  t        | j                         |      S )N    z)ObjectDB holds {} file and {} scope infos)r	   valueslenformat)r
   scope_count	file_dicts      r   __str__zObjectDB.__str__X   sR    **, 	*I3y>)K	*:AA

O
 	
r   NT)__name__
__module____qualname__r   r   r   r   r    r&   r0   r3   r:   r?   rC   rE   r%   r   r   rY    r   r   r   r      sR    )*"!+02(#!
r   r   c                   2    e Zd ZddZd Zd Zd Zd Zd Zy)	rG   c                     || _         y r   )error_on_write)r
   ra   s     r   r   z_NullScopeInfo.__init__c   s
    ,r   c                      y r   r^   r
   r/   s     r   r.   z_NullScopeInfo.get_per_namef       r   c                 0    | j                   r
t               y r   ra   NotImplementedErrorr
   r/   r=   s      r   r<   z_NullScopeInfo.save_per_namei       %'' r   c                      y r   r^   r
   
parameterss     r   r&   z_NullScopeInfo.get_returnedm   rd   r   c                     g S r   r^   r   s    r   r2   z_NullScopeInfo.get_call_infosp   s    	r   c                 0    | j                   r
t               y r   rf   r
   rl   r8   s      r   r7   z_NullScopeInfo.add_calls   ri   r   NrZ   )	r[   r\   r]   r   r.   r<   r&   r2   r7   r^   r   r   rG   rG   b   s     -((r   rG   c                       e Zd Zd Zy)FileInfoc                      y r   r^   r
   r   s     r   rI   zFileInfo.create_scopey   rd   r   N)r[   r\   r]   rI   r^   r   r   rq   rq   x   s    r   rq   c                       e Zd Zd Zd Zy)FileDictc                      y r   r^   rs   s     r   rH   zFileDict.create~   rd   r   c                      y r   r^   )r
   r   new_keys      r   r   zFileDict.rename   rd   r   N)r[   r\   r]   rH   r   r^   r   r   ru   ru   }       r   ru   c                   *    e Zd Zd Zd Zd Zd Zd Zy)	ScopeInfoc                      y r   r^   rc   s     r   r.   zScopeInfo.get_per_name   rd   r   c                      y r   r^   rh   s      r   r<   zScopeInfo.save_per_name   rd   r   c                      y r   r^   rk   s     r   r&   zScopeInfo.get_returned   rd   r   c                      y r   r^   r   s    r   r2   zScopeInfo.get_call_infos   rd   r   c                      y r   r^   ro   s      r   r7   zScopeInfo.add_call   rd   r   N)r[   r\   r]   r.   r<   r&   r2   r7   r^   r   r   r{   r{      s    r   r{   c                       e Zd Zd Zd Zd Zy)CallInfoc                      || _         || _        y r   )r)   r8   )r
   r)   r8   s      r   r   zCallInfo.__init__   s    	 r   c                     | j                   S r   )r)   r   s    r   get_parameterszCallInfo.get_parameters   s    yyr   c                     | j                   S r   )r8   r   s    r   r&   zCallInfo.get_returned   s    }}r   N)r[   r\   r]   r   r   r&   r^   r   r   r   r      s    !r   r   c                       e Zd Zd Zd Zy)FileListObserverc                      y r   r^   r
   r(   s     r   rQ   zFileListObserver.added   rd   r   c                      y r   r^   r   s     r   rN   zFileListObserver.removed   rd   r   N)r[   r\   r]   rQ   rN   r^   r   r   r   r      ry   r   r   N)r   rG   rK   rq   ru   r{   r   r   r^   r   r   <module>r      sR   ^
 ^
B( (,t 
t  "	 	 r   