rgles actuelles implmentes:

Mapping : 
- impossible si il existe une jointure entre src et trg
- impossible si src=trg
- impossible si trg est dj mapp pa un anctre de src
- impossible si src map dj un container sur une autre connexion
- impossible si src est mappe par un sourceSet contenant trg
- impossible si le dataset de src contient un container mapp par le dataset de src
- impossible si src est mappe par une des sources de trg
- impossible si une des src de trg utilise(ie.est mapp) (directement ou non) src
 
 
Heritage:
- impossible sur une seule table (src=trg)
- impossible si cela forme une boucle dans le graph d'hritage des dataset
- impossible si cela forme une boucle dans le graph des jointures entre dataset

 
Jointure :
- impossible si il existe une jointure entre src et trg et que src et trg viennent de deux datasets diffrents et que les 2 datasets ont un anctre commun
- impossible si l'un des containers du dataset de trg est mapp par un container de la hierarchy de dataset du  dataset de src et 
	que les parents du dataset de ce container ne contiennent pas le dataset de src
- impossible si l'un des containers du dataset de src est mapp par le dataset de trg et que les parents du dataset de ce container ne contiennent pas le dataset de trg)

- impossible si src est utilis pour alimenter une des sources de trg
- impossible si trg est utilis pour alimenter une des sources de src
------------------------------------------------------------------



Basic Rule : 

on ne peut pas joindre deux Containers A et B si :
 - il existe une table T appartenant  datasetB dont le graph d'alimentation contient dataset de A
 (ou - il existe une table T appartenant  datasetA dont le graph d'alimentation contient dsB)

avec :
graph d'alimentation:
  vertex <- container target
  vertex <- dataset
  edge <- dataset dans target's sourceset (direction dataset -> target)
  edge <- dataset inheritance (directrion parent->enfant)
  
pour T, on s'interesse au sous graph partant de T compos de tous les noeuds et edge qui remontent recursivement selon les edge dans le sens end->start
 
 
-de plus, si en joignant des containers on se retrouve avec des alims ayant la fore

SS1 -----> T ------> T2
 |-----------------> T2 la jointure est impossible (cf bad_join_mapping3)
 
 -
 
 