public override void ChangeMemberType(VDMetaMember member, VDMetaType newMetaType) { if (this.Meta != null) { this.Meta.ChangeMemberType(member, newMetaType); } }
public override void AddMember <T>(VDMetaType memberMetaType, string name) { if (string.IsNullOrWhiteSpace(name)) { throw new ArgumentNullException("name"); } VDMetaMember metaMember = this.Members.Find(m => m.Name == name) as VDMetaMember; if (metaMember != null) { if (metaMember.Type.FullName == memberMetaType.FullName) { return; } else { throw new Exception(string.Format("There is alreay a member named {0} of type {1}", name, metaMember.Type.FullName)); } } metaMember = newMetaMember <T>(this.Partition, name); metaMember.Type = memberMetaType; this.Members.Add(metaMember); foreach (VDConcreteType t in this.ConcreteTypes) { t.AddMemberImpl(metaMember); } }
public override void AddMember <T>(VDMetaType memberMetaType, string name) { if (this.Meta != null) { this.Meta.AddMember <T>(memberMetaType, name); } }
internal virtual void ChangeMemberTypeImpl(VDMetaMember metaMember, VDMetaType memberMetaType, VDConcreteMember member) { if (member.Type != null && member.Type.MembersOfThisType.Count <= 1 && !(member.Type is VDPrimitiveMemberType)) { member.Type.Delete(); } if (memberMetaType is VDPrimitiveType) { member.Type = this.ModelStore.GetPrimitiveMemberType(memberMetaType.FullName); } else { member.Type = this.newInstance(memberMetaType); } }
public override void ChangeMemberType(VDMetaMember metaMember, VDMetaType newMetaType) { if (metaMember == null) { throw new ArgumentNullException("metaMember"); } if (newMetaType == null) { throw new ArgumentNullException("newMetaType"); } metaMember.Type = newMetaType; foreach (VDConcreteMember m in metaMember.ConcreteMembers) { ((VDConcreteType)m.Host).ChangeMemberTypeImpl(metaMember, newMetaType, m); } }
public override void ChangeMemberType(string member, string newMetaType) { if (string.IsNullOrWhiteSpace(member)) { throw new ArgumentNullException("member"); } if (string.IsNullOrWhiteSpace(newMetaType)) { throw new ArgumentNullException("newMetaType"); } VDMetaMember metaMember = Members.Find(m => m.Name == member) as VDMetaMember; if (metaMember == null) { return; } VDMetaType metaType = this.ModelStore.CreateMetaType(newMetaType); ChangeMemberType(metaMember, metaType); }
public abstract void ChangeMemberType(VDMetaMember member, VDMetaType newType);
public abstract void AddMember <T>(VDMetaType memberMetaType, string name) where T : VDMetaMember;
internal override VDConcreteType newInstance(VDMetaType metaType) { return(this.ModelStore.CreateConcreteType <VDViewModel>(metaType)); }
virtual internal VDConcreteType newInstance(VDMetaType metaType) { return(null); }