//------------------------------------------------------------ public C2iObjetDeSchema GetObjetElement2(ref bool bCreate) { if (ElementDeSchema == null || !ElementDeSchema.IsValide()) { return(null); } CLienReseau lien = ElementDeSchema.LienReseau; if (lien == null) { return(null); } IElementDeSchemaReseau extremite = null; CCheminLienReseau racine = ElementDeSchema.RacineChemin2; if (racine != null) { extremite = racine.Etape as IElementDeSchemaReseau; } if (extremite == null) { extremite = lien.Element2 as IElementDeSchemaReseau; } return(GetObjetElement(extremite, ref bCreate)); }
public bool ContientChemin(CCheminLienReseau chemin) { if (chemin.SchemaReseauUtilise == null && SchemaReseauUtilise != null) { return(true); } if (chemin.SchemaReseauUtilise.Id == SchemaReseauUtilise.Id) { if (chemin.CheminsFils.Count == 0) { return(true); } if (CheminsFils.Count == 0)//Il reste des chemins au testé, mais pas au contenant potentiel { return(false); } CCheminLienReseau cheminFilsThis = CheminsFils[0] as CCheminLienReseau; CCheminLienReseau cheminFilsTest = chemin.CheminsFils[0] as CCheminLienReseau; return(cheminFilsThis.ContientChemin(cheminFilsTest)); } return(false); }
private CCheminLienReseau CreateChemin(CSchemaReseau[] schemas, EExtremiteLienReseau extremite) { if (schemas.Length == 0) { return(null); } CCheminLienReseau chemin = new CCheminLienReseau(ContexteDonnee); chemin.CreateNewInCurrentContexte( ); chemin.ElementDeSchemaConcerne = this; chemin.SchemaReseauUtilise = schemas[0]; chemin.NumeroExtremiteConcernee = (int)extremite; List <CSchemaReseau> copie = new List <CSchemaReseau>(schemas); copie.RemoveAt(0); CCheminLienReseau cheminFils = CreateChemin(copie.ToArray(), extremite); if (cheminFils != null) { cheminFils.CheminParent = chemin; } return(chemin); }