o
    !wib	                     @   sZ   d dl Z d dlZddlmZ dgZG dd dejddZedG d	d
 d
Zee_dS )    N   )_jcustomizerJStringc                   @   s   e Zd ZdZdd ZdS )r   z Base class for ``java.lang.String`` objects

    When called as a function, this class will produce a ``java.lang.String``
    object.  It can be used to test if an object is a Java string
    using ``isinstance(obj, JString)``.

    c                 O   s"   | t krtdtd} | | S )Nz,JString factory cannot be used as base classjava.lang.String)r   	TypeError_jpypeJClass)clsargskwargs r   K/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/jpype/_jstring.py__new__"   s   
zJString.__new__N)__name__
__module____qualname____doc__r   r   r   r   r   r      s    T)internalr   c                   @   sf   e Zd ZdedefddZdefddZdeje	ef fdd	Z
dedefd
dZdd Zdd ZdS )_JStringProtootherreturnc                 C   
   |  |S N)concatselfr   r   r   r   __add__+      
z_JStringProto.__add__c                 C   s   |   S r   )lengthr   r   r   r   __len__.   s   z_JStringProto.__len__ic                 C   sX   t |trt| | S |dk r|t| 7 }|dk rtd|t| kr'td| |S )Nr   zArray index is negativezArray index exceeds length)
isinstanceslicestrlen
IndexErrorcharAt)r   r!   r   r   r   __getitem__1   s   

z_JStringProto.__getitem__c                 C   r   r   )containsr   r   r   r   __contains__=   r   z_JStringProto.__contains__c                 C   s   | d krt d S |   S r   )hash__str____hash__r   r   r   r   r-   @   s   z_JStringProto.__hash__c                 C   s   d|    S )Nz'%s')r,   r   r   r   r   __repr__E   s   z_JStringProto.__repr__N)r   r   r   r$   r   intr    typingUnionr#   r(   boolr*   r-   r.   r   r   r   r   r   )   s    r   )	r0   r    r   __all___JObjectr   JImplementationForr   r   r   r   r   <module>   s   
