public void VisitModel(ModelVisitor visitor) { foreach (TransientModel compositeModel in this.compositeModels) { TransientModel.VisitModel(visitor); } }
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); }
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; }