o
    !wÖi  ã                   @   sF   d dl Z ddlmZ g Zdd„ Zdd„ Zdd	„ Zee _ee _ee _	dS )
é    Né   )Ú_jclassc                 C   sî  t  |¡}t|dƒs|j t|dƒ}|dur%|j | j¡}|dur%t|ƒS ddl	m
} g }| d| j| ¡ f ¡ | d¡ g }g }	g }
g }|D ]E}| ¡ }| | ¡ ¡ | ¡  ¡ }d dd	„ | ¡ D ƒ¡}|d
krp|	 |¡ |d@ r| d|| ¡ |f ¡ qH|
 d|| ¡ |f ¡ qH|rŸ| d¡ | |¡ | d¡ |
r°| d¡ | |
¡ | d¡ |rÌ| d¡ t|ƒD ]}| d| ¡  ¡ q»| d¡ |	rò| d¡ d dd	„ t|	ƒD ƒ¡}|ddd}| | |¡¡ | d¡ d |¡S )as  Generator for _JMethod.__doc__ property

    Parameters:
      method (_JMethod): method to generate doc string for.
      cls (java.lang.Class): Class holding this method dispatch.
      overloads (java.lang.reflect.Method[]): tuple holding all the methods
        that are served by this method dispatch.

    Returns:
      The doc string for the method dispatch.
    Ú__javadoc__Nr   )ÚTextWrapperz"Java method dispatch '%s' for '%s'Ú z, c                 S   s   g | ]}t | ¡ ƒ‘qS © )ÚstrÚgetCanonicalName©Ú.0Úir   r   úK/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/jpype/_jmethod.pyÚ
<listcomp>:   s    ÿz"_jmethodGetDoc.<locals>.<listcomp>Úvoidé   z    * %s %s(%s)z  Static Methods:z  Virtual Methods:z	  Raises:z    %s: from javaz
  Returns:c                 S   s   g | ]}t |ƒ‘qS r   )r   r
   r   r   r   r   V   s    z    )Úinitial_indentÚsubsequent_indentÚ
)Ú_jpypeÚJClassÚhasattrÚ__doc__ÚgetattrÚmethodsÚgetÚ__name__r   Útextwrapr   ÚappendÚgetNameÚgetModifiersÚextendÚgetExceptionTypesÚgetReturnTyper	   ÚjoinÚgetParameterTypesÚsetÚwrap)ÚmethodÚclsÚ	overloadsÚjclsÚjdÚmdr   ÚoutÚ
exceptionsÚreturnsr   ÚclassmethodsÚovÚ	modifiersÚ
returnNameÚparamsÚexcÚwordsÚwrapperr   r   r   Ú_jmethodGetDoc   sp   


ÿ

ÿ
ÿÿ








ÿ

r8   c                 C   s¦   g }t |ƒdkr-|d }i }t| ¡ ƒD ]\}}t |¡|d| < qt | ¡ ¡|d< |S |D ]	}| | ¡ ¡ q/t|ƒ}t |ƒdkrQdt dd„ |D ƒd ¡iS i S )a}  Generator for ``_JMethod.__annotation__`` property

    Parameters:
      method (_JMethod): method to generate annotations for.
      cls (java.lang.Class): Class holding this method dispatch.
      overloads (java.lang.reflect.Method[]): tuple holding all the methods
        that are served by this method dispatch.

    Returns:
      The dict to use for type annotations.
    r   r   zarg%dÚreturnc                 S   s   g | ]}|‘qS r   r   r
   r   r   r   r   |   s    z)_jmethodGetAnnotation.<locals>.<listcomp>)ÚlenÚ	enumerater$   r   r   r"   r   r%   )r'   r(   r)   r/   r1   r-   r   Úpr   r   r   Ú_jmethodGetAnnotation_   s   r=   c                    s   ‡ fdd„}|S )Nc                     s
   ˆ j | Ž S )N)Ú__call__)Úargs©r'   r   r   Úcall   s   
z_jmethodGetCode.<locals>.callr   )r'   rA   r   r@   r   Ú_jmethodGetCode€   s   rB   )
r   r   r   Ú__all__r8   r=   rB   ÚgetMethodDocÚgetMethodAnnotationsÚgetMethodCoder   r   r   r   Ú<module>   s   F!
