Class Notice

    • Field Detail

      • listeZones

        protected com.google.common.collect.ListMultimap<String,​Zone> listeZones
    • Constructor Detail

      • Notice

        public Notice()
      • Notice

        public Notice​(List<Zone> listeZones)
      • Notice

        public Notice​(com.google.common.collect.ListMultimap<String,​Zone> listeZones)
    • Method Detail

      • initListeZones

        protected void initListeZones()
      • createNoticeFromXml

        protected void createNoticeFromXml​(String noticeXml)
                                    throws org.dom4j.DocumentException,
                                           ZoneException
        Throws:
        org.dom4j.DocumentException
        ZoneException
      • traiterSousZonesXml

        protected void traiterSousZonesXml​(String zoneId,
                                           char[] indicateurs,
                                           List<org.dom4j.Node> listeSousZones,
                                           Integer indexZone)
                                    throws ZoneException
        Méthode de traitement des sous zones d'une zone formattée en xml
        Parameters:
        zoneId - : Objet XML correspondant à la zone
        indicateurs - : tableau contenant les 2 indicateurs
        listeSousZones - : liste de nodes contenant l'ensemble des sous zones de la zone
        indexZone - : index ou placer la zone dans la liste multimap
        Throws:
        ZoneException
      • getIndicateurs

        public static char[] getIndicateurs​(org.dom4j.Node zone)
        Méthode de récupération des indicateurs (attributs ind1 et ind2 du noeud en cours) de la zone XML
        Parameters:
        zone -
        Returns:
        tableau de caractères contenant les 2 indicateurs
      • addZone

        public void addZone​(String zone,
                            String sousZone,
                            String valeur)
                     throws ZoneException
        Méthode d'ajout d'une zone à la notice
        Specified by:
        addZone in interface INotice
        Parameters:
        zone - intitulé de la zone à ajouter
        sousZone - intitulé de la première sous zone à ajouter
        valeur - valeur à affecter à la sous zone
        Throws:
        ZoneException
      • addZone

        public void addZone​(String zone,
                            String sousZone,
                            String valeur,
                            char[] indicateurs)
                     throws ZoneException
        Méthode d'ajout d'une zone à la notice
        Specified by:
        addZone in interface INotice
        Parameters:
        zone - intitulé de la zone à ajouter
        sousZone - intitulé de la première sous zone à ajouter
        valeur - valeur à affecter à la sous zone
        indicateurs - tableau des indicateurs de la zone
        Throws:
        ZoneException
      • addZone

        public void addZone​(String zone,
                            String valeur)
                     throws ZoneException
        Méthode d'ajout d'une zone dans le cas zone + valeur
        Specified by:
        addZone in interface INotice
        Parameters:
        zone - intitulé de la zone à créer
        valeur - valeur à affecter à la zone
        Throws:
        ZoneException
      • addZone

        public void addZone​(Zone zone)
        Méthode d'ajout d'une zone à partir d'un objet zone déjà constitué
        Specified by:
        addZone in interface INotice
        Parameters:
        zone -
      • addZoneEtatCollection

        public void addZoneEtatCollection​(String zone,
                                          String sousZone,
                                          String valeur,
                                          char[] indicateurs)
                                   throws ZoneException
        Méthode d'ajout d'une zone d'état de collection à la notice
        Specified by:
        addZoneEtatCollection in interface INotice
        Parameters:
        zone - : intitulé de la zone d'état de collection : 955, 956, 957 ou 959
        sousZone - : sous zone à ajouter (la zone ne peut pas être créée sans sous zone)
        valeur - : valeur à affecter à la sous zone
        indicateurs - : indicateurs
        Throws:
        ZoneException
      • findZones

        public List<Zone> findZones​(String label)
        Retourne une liste de zones dont le label est passé en paramètre
        Specified by:
        findZones in interface INotice
        Parameters:
        label - label de la zone à récupérer
        Returns:
        liste des zones correspondant au label (plusieurs si zone répétable)
      • findZone

        public Zone findZone​(String label,
                             Integer index)
        Récupération de la nième zone dont le label est passé en paramètre
        Specified by:
        findZone in interface INotice
        Parameters:
        label - label de zone
        index - index de la nième zone répétée dans la notice
        Returns:
        la zone placée à l'index fourni. Si l'index fourni est supérieur au nombre de zones trouvées, on retourne la première zone
      • findZoneWithPattern

        public List<Zone> findZoneWithPattern​(String zone,
                                              String sousZone,
                                              String pattern)
        Méthode permettant de trouver une zone en spécifiant une sous zone contenant une valeur correspondant au pattern
        Specified by:
        findZoneWithPattern in interface INotice
        Parameters:
        zone - zone sur laquelle chercher
        sousZone - sous zone dans laquelle chercher
        pattern - valeur valeur devant être contenue dans la sous zone
        Returns:
        liste des zones correspondant à la recherche
      • replaceSousZoneWithValue

        public void replaceSousZoneWithValue​(String zone,
                                             String sousZone,
                                             String valeurInit,
                                             String newValeur)
        Remplacer la valeur d'une sous zone contenant une valeur donnée par une nouvelle valeur
        Specified by:
        replaceSousZoneWithValue in interface INotice
        Parameters:
        zone - zone sur laquelle effectuer le remplacement
        sousZone - sous zone sur laquelle effectuer le remplacement
        valeurInit - valeur devant être contenue dans la sous zone
        newValeur - nouvelle valeur à affecter (remplace l'intégralité de la valeur de la sous zone)
      • addSousZone

        public void addSousZone​(String zone,
                                String sousZone,
                                String valeur)
                         throws ZoneException
        Méthode d'ajout d'une sous zone dans une zone. En cas de zone répétée, toutes les zones seront concernées par l'ajout
        Specified by:
        addSousZone in interface INotice
        Parameters:
        zone - zone dans laquelle rajouter la sous zone
        sousZone - sous zone à ajouter
        valeur - valeur à affecter à la sous zone
        Throws:
        ZoneException
      • addSousZone

        public void addSousZone​(String zone,
                                String sousZone,
                                String valeur,
                                Integer index)
                         throws ZoneException
        Méthode d'ajout d'une sous zone dans une zone. En cas de zone répétée, uniquement la zone située à l'index en paramètre sera concernée
        Specified by:
        addSousZone in interface INotice
        Parameters:
        zone -
        sousZone -
        valeur - valeur à placer dans la sous zone
        index - de la zone en cours sur laquelle créer la sous zone (pour zones répétées uniquement)
        Throws:
        ZoneException
      • addSousZone

        public void addSousZone​(String zone,
                                String sousZone,
                                String valeur,
                                String sousZoneBefore,
                                String valeurBefore)
                         throws ZoneException
        Ajout d'une sous zone dans une zone. La sous zone sera placée après une sous zone contenant une valeur précise
        Specified by:
        addSousZone in interface INotice
        Parameters:
        zone -
        sousZone -
        valeur - valeur à placer dans la sous zone
        sousZoneBefore - sous zone précédente
        valeurBefore - valeur de la sous zone précédente, après laquelle sera placée la nouvelle sous zone
        Throws:
        ZoneException
      • deleteZone

        public void deleteZone​(String zone,
                               Integer index)
        Méthode de suppression d'une zone à l'index donnée
        Specified by:
        deleteZone in interface INotice
        Parameters:
        zone -
        index - index de la zone à supprimer en cas de zone répétée. Si null, suppression de toutes les zones répétées concernées
      • deleteZone

        public void deleteZone​(String zone)
        Méthode de suppression d'une zone de la notice (en cas de zones répétées, toutes les zones sont supprimées)
        Specified by:
        deleteZone in interface INotice
        Parameters:
        zone -
      • deleteSousZone

        public void deleteSousZone​(String zone,
                                   String sousZone)
        Méthode de suppression d'une sous zone dans une zone en cas de zone répétée, toutes les sous zones qui se trouvent dans l'une des zones seront supprimées
        Specified by:
        deleteSousZone in interface INotice
        Parameters:
        zone -
        sousZone -
      • replaceSousZone

        public void replaceSousZone​(String zone,
                                    String sousZone,
                                    String valeur)
        Méthode de remplacement de la valeur d'une sous zone dans toutes les zones concernées
        Specified by:
        replaceSousZone in interface INotice
        Parameters:
        zone - zone dans laquelle remplacer la sous zone
        sousZone - sous zone à remplacer
        valeur - nouvelle valeur à affecter à la sous zone
      • genererZonesSansSousZone

        protected void genererZonesSansSousZone​(String lineZone,
                                                String labelZone)
                                         throws ZoneException
        Méthode de génération d'une zone sans sous zone (uniquement zone + valeur) à partir d'une chaine Unimarc
        Parameters:
        lineZone -
        labelZone -
        Throws:
        ZoneException