Esempio n. 1
0
 public void VisitModel(ModelVisitor visitor)
 {
     foreach (TransientModel compositeModel in this.compositeModels)
     {
         TransientModel.VisitModel(visitor);
     }
 }
Esempio n. 2
0
        public TransientModel GetCompositeModelFor(Type mixinType, Visibility visibility)
        {
            TransientModel foundModel = null;

            foreach (TransientModel composite in this.compositeModels)
            {
                if (typeof(TransientComposite).IsAssignableFrom(mixinType))
                {
                    if (mixinType == composite.CompositeType && composite.Visibility == visibility)
                    {
                        if (foundModel != null)
                        {
                            throw new AmbiguousTypeException(mixinType, foundModel.CompositeType, composite.CompositeType);
                        }

                        foundModel = composite;
                    }
                }
                else
                {
                    if (mixinType.IsAssignableFrom(composite.CompositeType) && composite.Visibility == visibility)
                    {
                        if (foundModel != null)
                        {
                            throw new AmbiguousTypeException(mixinType, foundModel.CompositeType, composite.CompositeType);
                        }
                        foundModel = composite;
                    }
                }
            }

            return(foundModel);
        }
Esempio n. 3
0
 public void AddTransients(List <TransientModel> compositeModels, PropertyDeclarations propertyDecs)
 {
     foreach (Type compositeType in this.CompositeTypes)
     {
         TransientModel transientModel = TransientModel.NewModel(compositeType,
                                                                 this.visibility,
                                                                 new MetaInfo(this.metaInfo).WithAnnotations(compositeType),
                                                                 propertyDecs,
                                                                 this.concerns,
                                                                 this.sideEffects,
                                                                 this.mixins);
         compositeModels.Add(transientModel);
     }
 }
 public TransientBuilderInstance(ModuleInstance moduleInstance, TransientModel model)
 {
     this.moduleInstance = moduleInstance;
     this.transientModel = model;
 }
 public TransientBuilderInstance(ModuleInstance moduleInstance, TransientModel model, UsesInstance uses)
     : this(moduleInstance, model)
 {
     this.uses = uses;
 }