示例#1
0
        internal MifObjectsContainer GetContainer(List <string> multiAtlases, List <List <string> > unprocessedText)
        {
            List <IMifAtlas>  atlases    = new List <IMifAtlas>();
            List <MultiAtlas> multiAtlas = new List <MultiAtlas>();
            var atlasFactory             = new AtlasFactory();
            var container = new MifObjectsContainer();

            multiAtlases.ForEach(a => multiAtlas.Add((MultiAtlas)atlasFactory.Create(a, new List <IMifAtlas>())));
            multiAtlas.ForEach(m => m.MifAtlas.AddRange(
                                   _objects.Where(o => o is SpintronicsObject).
                                   Where(o => o.Multiatlas == m.Name).
                                   Select(s => ((SpintronicsObject)s).MifObject)));
            atlases.AddRange(multiAtlas);
            atlases.AddRange(_objects.Where(o => o is SpintronicsObject).
                             Where(o => o.Multiatlas == null || o.Multiatlas == "").
                             Select(s => ((SpintronicsObject)s).MifObject));
            container.MifAtlases.AddRange(atlases);
            container.MifEnergies.AddRange(_energies.Where(e => e is SpintronicsEnergy)
                                           .Select(e => ((SpintronicsEnergy)e).Energy));
            container.MifScripts.AddRange(_scripts.Where(s => s is MifScript)
                                          .Select(s => ((MifScript)s).GetScriptObject()));
            container.UnprocessedText.Text = unprocessedText;
            return(container);
        }