ó
|c‹Ac           @   sM   d  Z  d d l m Z d d l m Z d d l m Z d d d „  ƒ  YZ d S(	   s:    Topic class
    http://www.topicmaps.org/xtm/#desc-topic
iÿÿÿÿ(   t   BaseName(   t
   InstanceOf(   t
   Occurrencet   Topicc           B   sM   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   sB    Topic class
        http://www.topicmaps.org/xtm/#desc-topic
    c         C   s   | |  _  g  |  _ d S(   s,   Initialize Topic object. (id) - set Topic idN(   t   _idt	   _children(   t   selft   id(    (    s   lib/xtm/Topic.pyt   __init__   s    	c         C   s   |  j  S(   s   Return Topic id (   R   (   R   (    (    s   lib/xtm/Topic.pyt   getId   s    c         C   s   |  j  j | ƒ d S(   s4   Add object (:BaseName or :InstanceOf or :Occurrence)N(   R   t   append(   R   t   child(    (    s   lib/xtm/Topic.pyt   addChild   s    c         C   s)   g  |  j  D] } t | t ƒ r
 | ^ q
 S(   s3   Return list of the :BaseName objects for this Topic(   R   t
   isinstanceR    (   R   t   baseName(    (    s   lib/xtm/Topic.pyt   getBaseNameList   s    c         C   s)   g  |  j  D] } t | t ƒ r
 | ^ q
 S(   s5   Return list of the :InstanceOf objects for this Topic(   R   R   R   (   R   t
   instanceOf(    (    s   lib/xtm/Topic.pyt   getInstanceOfList    s    c         C   s)   g  |  j  D] } t | t ƒ r
 | ^ q
 S(   s5   Return list of the :Occurrence objects for this Topic(   R   R   R   (   R   t
   occurrence(    (    s   lib/xtm/Topic.pyt   getOccurrenceList$   s    c         C   s<   d j  g  |  j D] } t | ƒ ^ q ƒ } d |  j | f S(   s-   Return XTM:str representation of Topic objectt    s   <topic id="%s">%s</topic>(   t   joinR   t   strR   (   R   R   t   children(    (    s   lib/xtm/Topic.pyt   __str__(   s    +(
   t   __name__t
   __module__t   __doc__R   R	   R   R   R   R   R   (    (    (    s   lib/xtm/Topic.pyR      s   						N(    (   R   t   xtm.BaseNameR    t   xtm.InstanceOfR   t   xtm.OccurrenceR   R   (    (    (    s   lib/xtm/Topic.pyt   <module>   s   