ó
#yRc           @   sF   d  d l  m Z m Z d e f d     YZ d e f d     YZ d S(   i’’’’(   t   ElementTreet	   XMLParsert   PomLoadingExceptionc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s4   /usr/lib/python2.7/site-packages/javapackages/pom.pyR   #   s   t   POMc           B   s\   e  Z d  Z d   Z d   Z e d    Z e d    Z e d    Z e d    Z	 RS(   sV   
    Class for querying basic information from pom.xml files used by Apache Maven
    c         C   sX   t    } t d t d t  } | j | d | |  _ |  j d  k rT t d   n  d  S(   Nt   remove_commentst   strip_cdatat   parsers*   Failed to load pom.xml. You have a problem(   R    R   t   Truet   parset	   _POM__doct   NoneR   (   t   selft   patht   etR   (    (    s4   /usr/lib/python2.7/site-packages/javapackages/pom.pyt   __init__*   s    		c         C   s}   |  j  j | d t d d  } t |  d k rT |  j  j | j d d   } n  t |  d k rs | d } n d  } | S(   Nt
   namespacest   poms!   http://maven.apache.org/POM/4.0.0i    s   pom:t    (   R   t   xpatht   dictt   lent   replaceR   (   R   R   t   ret(    (    s4   /usr/lib/python2.7/site-packages/javapackages/pom.pyt   __find4   s    !!c         C   sĄ   |  j  d  } | d k r- |  j  d  } n  | d k rw |  j  d  } | d k	 rd | j d } n  | d k	 rw | Sn  | d k r t d   n  t |  d k r³ t d   n  | j j   S(	   sZ   
        Effective groupId of the pom Artifact taking into account parent groupId
        s   ./pom:groupIds   ./pom:parent/pom:groupIds   /ivy-module/infot   organisations   Unable to determine groupIdi    s$   Unexpected child nodes under groupIdN(   t
   _POM__findR   t   attribR   R   t   textt   strip(   R   t   gId(    (    s4   /usr/lib/python2.7/site-packages/javapackages/pom.pyt   groupId@   s    c         C   s¢   |  j  d  } | d k rY |  j  d  } | d k	 rF | j d } n  | d k	 rY | Sn  | d k rt t d   n  t |  d k r t d   n  | j j   S(   s:   
        Effective artifactId of the pom Artifact
        s   ./pom:artifactIds   /ivy-module/infot   modules   Unable to determine artifactIDi    s'   Unexpected child nodes under artifactIdN(   R   R   R   R   R   R   R   (   R   t   aId(    (    s4   /usr/lib/python2.7/site-packages/javapackages/pom.pyt
   artifactIdT   s    c         C   sĄ   |  j  d  } | d k r- |  j  d  } n  | d k rw |  j  d  } | d k	 rd | j d } n  | d k	 rw | Sn  | d k r t d   n  t |  d k r³ t d   n  | j j   S(	   sb   
        Effective version of the pom Artifact taking into account parent
        version
        s   ./pom:versions   ./pom:parent/pom:versions   /ivy-module/infot   revisions$   Unable to determine artifact versioni    s$   Unexpected child nodes under versionN(   R   R   R   R   R   R   R   (   R   t   version(    (    s4   /usr/lib/python2.7/site-packages/javapackages/pom.pyR%   f   s    c         C   sl   |  j  d  } | d k	 rI t |  d k r< t d   n  | j j   S|  j  d  } | d k	 rh d Sd S(   sC   
        Packaging type of artifact or None if unspecified
        s   ./pom:packagingi    s&   Unexpected child nodes under packagings   /ivy-module/infot   ivyN(   R   R   R   R   R   R   (   R   t   p(    (    s4   /usr/lib/python2.7/site-packages/javapackages/pom.pyt	   packaging{   s    (
   R   R   t   __doc__R   R   t   propertyR    R#   R%   R(   (    (    (    s4   /usr/lib/python2.7/site-packages/javapackages/pom.pyR   &   s   	
	N(   t
   lxml.etreeR    R   t	   ExceptionR   t   objectR   (    (    (    s4   /usr/lib/python2.7/site-packages/javapackages/pom.pyt   <module>!   s   