
    ši?*                     `   S SK r S SKrS SKrS SKrS SKJrJrJr  S SKJ	r	J
r
  S SKJr  S SKJr  S SKJrJrJr  S SKJrJrJrJrJ r!J"r#J$r%J&r'  S r(S r)S	 r*S
 r+ " S S5      r, " S S5      r- " S S5      r.S r/S r0S r1S r2S r30 r4S r5 " S S\5      r6 " S S\
\65      r7 " S S\\\65      r8g)    N)XTypeProviderXSingleComponentFactoryXServiceInfo)RuntimeExceptionXCurrentContext)ALL)INOUTINOUT)	MAYBEVOIDBOUNDCONSTRAINED	TRANSIENTREADONLYMAYBEAMBIGUOUSMAYBEDEFAULT	REMOVABLEc                 Z    SnU [         :X  a  SnU$ U [        :X  a  SnU$ U [        :X  a  SnU$ )Nz[]z[inout]z[out]z[in])PARAM_MODE_INOUTPARAM_MODE_OUTPARAM_MODE_INmoderets     +/usr/lib/python3/dist-packages/unohelper.py_mode_to_strr   ,   sF    
C
 J	 
	 J 
	J    c                 V   Sn[         U -  (       a  US-   n[        U -  (       a  US-   n[        U -  (       a  US-   n[        U -  (       a  US-   n[        U -  (       a  US-   n[
        U -  (       a  US-   n[        U -  (       a  US-   n[        U -  (       a  US	-   nUR                  5       $ )
N z
removable zmaybedefault zmaybeambiguous z	readonly z
transient zconstrained zbound z
maybevoid )	PROP_ATTR_REMOVABLEPROP_ATTR_MAYBEDEFAULTPROP_ATTR_MAYBEAMBIGUOUSPROP_ATTR_READONLYPROP_ATTR_TRANSIENTPROP_ATTR_CONSTRAINEDPROP_ATTR_BOUNDPROP_ATTR_MAYBEVOIDrstripr   s     r   _propertymode_to_strr)   6   s    
CT!L $O#$&%%D KT!L t#N"HnT!L ::<r   c                    [        U [        R                  5      (       d  [        U [        R                  5      (       d|  [        U [        R                  5      (       d]  [        U [        R
                  5      (       d>  [        U [        R                  5      (       d  [        U [        R                  5      (       a  UR                  [        U 5      S-   5        g [        R                  " 5       nUR                  R                  SU5      nUR                  S5        [        U S5      (       a1  U R                  5       nU H  nUR                  SU-   S-   5        M     OUR                  S5        UR                  S5        [        U S5      (       a;  U R                  5       nU H$  nUR                  SUR                   -   S-   5        M&     OUR                  S5        UR#                  U 5      nUR%                  [&        5      nUR                  S	5        U H  nUR                  SUR(                  R*                  -   S
-   UR*                  -   5        UR,                  n	UR.                  n
UR                  S5        [1        S[3        U	5      5       Hd  nUS:  a  UR                  S5        UR                  [5        X   R6                  5      S
-   X   R*                  -   S
-   X   R8                  -   5        Mf     UR                  S5        M     UR;                  [<        5      nUR                  S5        U HW  nUR                  S[?        UR@                  5      -   S-   UR                  R                   -   S
-   UR*                  -   S-   5        MY     g )N
z com.sun.star.beans.IntrospectionzSupported services:
getSupportedServiceNamesz  z
  unknown
zInterfaces:
getTypesz	Methods:
 z( r   z, z )
zProperties:
z  (z) )!
isinstanceunoTypeCharBoolByteSequenceEnumAnywritestrgetComponentContextServiceManagercreateInstanceWithContexthasattrr,   r-   typeNameinspect
getMethodsMETHOD_CONCEPT_ALL
ReturnTypeNameParameterTypesParameterInfosrangelenr   aModeaNamegetPropertiesPROPERTY_CONCEPT_ALLr)   
Attributes)objoutctxintrospectionnamesii
interfacesaccessmethodsargsinfosipropss                r   r>   r>   J   s   3""3""3""3((**3""3!!		3s8d?#

!
!
#C				5	57Y[^	`  II&(/11,,.BIItby4')  			="II Z!!\\^
BIItbkk)D02  			="""C)F!35GII|		4"--,,,s2RWW<>  !!		43;(A1u		4!II|UX^^5;dgllJSPSXS[SaSaac ) 			6    "68EII 		5-r}}>>EbggFVFVVWZZ[][b[bbdhhj r   c                     [        XU5      $ N)_FactoryHelper_clazzimplementationNameserviceNamess      r   createSingleServiceFactoryr`   {   s    E|EEr   c                       \ rS rSrS rSrg)_ImplementationHelperEntry~   c                     Xl         X l        g rZ   ctorr_   )selfrf   r_   s      r   __init__#_ImplementationHelperEntry.__init__   s    	(r   re   N__name__
__module____qualname____firstlineno__rh   __static_attributes__ r   r   rb   rb   ~   s    )r   rb   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
ImplementationHelper   c                     0 U l         g rZ   implsrg   s    r   rh   ImplementationHelper.__init__   s	    
r   c                 4    [        X5      U R                  U'   g rZ   )rb   rv   )rg   rf   r^   r_   s       r   addImplementation&ImplementationHelper.addImplementation   s    *DT*W

%&r   c                     [        U R                  R                  5       5       HF  nSUS   -   S-   nUR                  U5      nUS   R                   H  nUR                  U5        M     MH     g)N/r   /UNO/SERVICES   )listrv   items	createKeyr_   )rg   regKeysmgrrW   keyNamekeyserviceNames          r   writeRegistryInfo&ImplementationHelper.writeRegistryInfo   se    djj&&()A1Q4i/1G""G-C t00{,  1 *
 r   c                     U R                   R                  US 5      nUc  [        US-   S 5      e[        UR                  XR
                  5      $ Nz is unknown)rv   getr   r`   rf   r_   )rg   r^   r   r   entrys        r   getComponentFactory(ImplementationHelper.getComponentFactory   sG    

 2D:="$6$FOO)5::7IK]K]__r   c                 v    U R                   R                  US 5      nUc  [        US-   S 5      eUR                  $ r   rv   r   r   r_   )rg   r^   r   s      r   r,   -ImplementationHelper.getSupportedServiceNames   s;    

 2D:="$6$FOO!!!r   c                 z    U R                   R                  US 5      nUc  [        US-   S 5      eX#R                  ;   $ r   r   )rg   r^   r   r   s       r   supportsService$ImplementationHelper.supportsService   s>    

 249="$6$FNN0000r   ru   N)rk   rl   rm   rn   rh   rz   r   r   r,   r   ro   rp   r   r   rr   rr      s"    X`"1r   rr   c                       \ rS rSrS rSrg)ImplementationEntry   c                 (    Xl         X l        X0l        g rZ   )implNamesupportedServicesr]   )rg   r   r   r]   s       r   rh   ImplementationEntry.__init__   s     !2
r   )r]   r   r   Nrj   rp   r   r   r   r      s    r   r   c                     U HJ  nSUR                   -   S-   nUR                  U5      nUR                   H  nUR                  U5        M     ML     g )Nr}   r~   )r   r   r   )r   r   
seqEntriesr   r   r   r   s          r   writeRegistryInfoHelperr      sK    u~~%7) 22KMM;( 3 r   c                 .    [         R                  " U 5      $ )z,returns a file-url for the given system path)pyunosystemPathToFileUrl)
systemPaths    r   r   r      s    $$j22r   c                 .    [         R                  " U 5      $ )zVreturns a system path (determined by the system, the python interpreter is running on))r   fileUrlToSystemPath)urls    r   r   r      s    $$c++r   c                 z    U H5  nUR                   U :X  d  M  [        UR                  XR                  5      s  $    g rZ   )r   r`   r]   r   )r^   r   r   r   xs        r   getComponentFactoryHelperr      s1    ::++-qww8JL_L_aa r   c           	         UR                   nUR                  X15      nUR                  SU5      n[        R                  S:H  =(       d    [        R                  S:H  n[        R
                  S:H  nU H  n	UR                  SU5      n
U
R                  SSS5        U(       d(  U	R                  S	5      (       a  U(       a  U	S
-   n	OU	S-   n	UR                  X9U
5        U
R                  5       nUR                  S5      nUR                  5       nU R                   nU H?  nUR                  [        UR                  S5      5      SX5      nUR                  U5        MA     U
R!                  5         M     g )Nz0com.sun.star.registry.ImplementationRegistrationntdosdarwinz$com.sun.star.registry.SimpleRegistryr   r   r   z.unoz.dylibz.soIMPLEMENTATIONSr}   )r:   r;   osnamesysplatformopenendswithregisterImplementation
getRootKeyopenKeygetKeyNamesactivatemaxsplitinsertclose)toBeExtendedContextcontextRuntimecomponentUrls
loaderNamer   loaderimplRegisWinisMaccomponentUrlregrootKeyimplementationKey	implNamesextSMGRr   facs                    r   addComponentsToContextr      s7   ((D++ZIF,,.`aopGGGtO/rww%/ELLH$E%,,.TVdf"a..88+h6+e3&&
F.."#OO->@%113	%44A//3qwws|#4RMCNNC!  			# &r   c                 v   S nU R                   [        ;   a  [        U R                      nU$ 0 n[        U R                   R                  5      n[	        U5      S:  at  UR                  5       nUR                  n[        R                  " U5      (       a  S X$R                  '   O[	        U5      S:  a  U[        U5      -   n[	        U5      S:  a  Mt  [        UR                  5       5      n/ nU H*  n[        R                  " U5      n	UR                  U	5        M,     [        U5      nU[        U R                   '   U$ )Nr   )	__class___g_typeTabler   	__bases__rF   popr0   isInterface__pyunointerface__keysgetTypeByNameappendtuple)
rg   r   rP   traverseitembaseslsttypesr   ts
             r   _unohelper_getHandler      s   
C~~%4>>** J' 0018o!<<>DNNE&&15--.Ua#d5k1 8o! 5::< A!!1&ALL!  El'*T^^$Jr   c                        \ rS rSrS rS rSrg)Base   c                     [        U 5      $ rZ   )r   rw   s    r   r-   Base.getTypes   s    #T++r   c                     g)Nrp   rp   rw   s    r   getImplementationIdBase.getImplementationId   s    r   rp   N)rk   rl   rm   rn   r-   r   ro   rp   r   r   r   r      s    ,r   r   c                   $    \ rS rSrSrS rS rSrg)CurrentContext   za current context implementation, which first does a lookup in the given
hashmap and if the key cannot be found, it delegates to the predecessor
if available
c                     X l         Xl        g rZ   hashMap
oldContext)rg   r   r   s      r   rh   CurrentContext.__init__  s    $r   c                     XR                   ;   a  U R                   U   $ U R                  b  U R                  R                  U5      $ g rZ   )r   r   getValueByName)rg   r   s     r   r   CurrentContext.getValueByName  s=    <<<<%%__(??11499r   r   N)rk   rl   rm   rn   __doc__rh   r   ro   rp   r   r   r   r      s    %r   r   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
r[   i  c                 (    Xl         X l        X0l        g rZ   r\   )rg   r]   r^   r_   s       r   rh   _FactoryHelper_.__init__  s    
"4(r   c                     U R                   $ rZ   )r^   rw   s    r   getImplementationName%_FactoryHelper_.getImplementationName  s    &&&r   c                     XR                   ;   $ rZ   r_   )rg   ServiceNames     r   r   _FactoryHelper_.supportsService  s    ////r   c                     U R                   $ rZ   r   rw   s    r   r,   (_FactoryHelper_.getSupportedServiceNames  s       r   c                 $    U R                  U5      $ rZ   r]   )rg   contexts     r   r;   )_FactoryHelper_.createInstanceWithContext  s    zz7$$r   c                 (    U R                   " U/UQ76 $ rZ   r  )rg   rU   r  s      r   %createInstanceWithArgumentsAndContext5_FactoryHelper_.createInstanceWithArgumentsAndContext"  s    zz7+T++r   r\   N)rk   rl   rm   rn   rh   r   r   r,   r;   r  ro   rp   r   r   r[   r[     s     )
'0!%,r   r[   )9r0   r   r   r   com.sun.star.langr   r   r   com.sun.star.unor   r    com.sun.star.beans.MethodConceptr   r@   "com.sun.star.beans.PropertyConceptrJ   !com.sun.star.reflection.ParamModer	   r   r
   r   r   r   $com.sun.star.beans.PropertyAttributer   r'   r   r&   r   r%   r   r$   r   r#   r   r"   r   r!   r   r    r   r)   r>   r`   rb   rr   r   r   r   r   r   r   r   r   r   r   r[   rp   r   r   <module>r     s   &   	 
 R R > F J 
& & &(/kbF) )
1 1D )3,b
8 4= _d (,.d ,r   