/**
  * @param patterns
  * @return ????
  */
 public Vector<EventSequence> postProcessing(Vector<EventSequence> patterns) {
   Vector<EventSequence> vec = new Vector<EventSequence>();
   for (int i = 0; i < patterns.size(); i++) {
     EventSequence s = patterns.elementAt(i);
     if (postAccepts(s)) vec.addElement(s);
   }
   return vec;
 }
 /**
  * @param set
  * @param alphabet
  * @param tax
  * @return a vector with elements???
  */
 protected Vector<Element> getParents(ItemSet set, Vector<Element> alphabet, Taxonomy tax) {
   Vector<Element> v = new Vector<Element>(0);
   for (int i = 0; i < set.size(); i++) {
     Element el = set.elementAt(i);
     int found = m_tdm.m_contentC.m_taxonomy.getParentOf(el, alphabet);
     if (-1 != found) {
       Element p = alphabet.elementAt(found);
       if (-1 == v.indexOf(p)) v.addElement(p);
     }
   }
   return v;
 }
 /**
  * @param db
  * @return a db transformed in a database of events ???
  */
 public Database preProcessing(Database db) {
   Vector<Element> alphabet = m_tdm.m_contentC.m_taxonomy.getAlphabet(m_tdm.m_contentC.m_level);
   Database preprocDB = new Database();
   for (int i = 0; i < db.getSize(); i++) {
     EventSequence s = db.elementAt(i);
     Vector<Event> events = new Vector<Event>(0);
     for (int k = 0; k < s.length(); k++) {
       Event e = s.elementAtIndex(k);
       if (m_tdm.m_temporalC.accepts(e)) {
         Vector<Element> v = getParents(e.getSet(), alphabet, m_tdm.m_contentC.m_taxonomy);
         if (null != v) events.addElement(new Event(new ItemSet(v), e.getInstant()));
       }
     }
     if (0 != events.size()) preprocDB.addElement(new EventSequence(events));
   }
   preprocDB.setAlphabet(alphabet);
   return preprocDB;
 }