001    package com.oxygenxml.validate.nvdl;
002    
003    import java.util.ArrayList;
004    import java.util.Hashtable;
005    import java.util.Iterator;
006    import java.util.List;
007    import java.util.Stack;
008    
009    class Triggers {
010      
011      /**
012       * A list with defined triggers.
013       */
014      private final List triggers = new ArrayList();
015        
016      /**
017       * Adds a trigger for a namespace and a local name.
018       * @param ns The namespace.
019       * @param nameList The list of local names.
020       */
021      public String addTrigger(String ns, String nameList) {
022            Trigger t = new Trigger(ns, nameList);
023            triggers.add(t);
024            return t.errors;
025      }
026      
027      /**
028       * Indicates if we have a trigger on a namespace and local name.
029       * @param ns The namespace.
030       * @param name The local name.
031       * @return true if we have a trigger set, otherwise false.
032       */
033      public boolean trigger(String namespace, String name, String parent) {
034        // iterate triggers
035            Iterator i = triggers.iterator();
036            while (i.hasNext()) {
037              Trigger t = (Trigger)i.next();
038              if (t.trigger(namespace, name, parent)) {
039                return true;
040              }
041            }
042            return false;
043      }
044      
045    }