public override void Init( IProject project, IDependencyManager dependencies, IBuildAggregator aggregator ) { base.Init( project, dependencies, aggregator ); Model model = project.Model; EntityClass quotes = new EntityClass(); quotes.Name = "QuoteOfTheDay"; quotes.Visibility = "public"; EntityField id = new EntityField(); id.Name = "id"; id.IsPreview = true; id.IsPrimaryKey = true; id.Type = IntrinsicTypes.Create("System.Int32"); quotes.Fields.Add(id); EntityField quote = new EntityField(); quote.Name = "quote"; quote.Represents = true; quote.IsPreview = true; quote.Type = IntrinsicTypes.Create( "System.String" ); quote.IsRequired = true; quote.MaxSize = 1000; quotes.Fields.Add(quote); model.Add(quotes); }
private EntityClass CreateLogger() { Entity intEntity = IntrinsicTypes.Create( "System.Int32" ); Entity stringEntity = IntrinsicTypes.Create( "System.String" ); Entity dateTimeEntity = IntrinsicTypes.Create( "System.DateTime" ); EntityClass logger = new EntityClass(); logger.Name = "RequestLogger"; logger.Visibility = "public"; EntityField field = new EntityField(); field.Name = "id"; field.IsPrimaryKey = true; field.IsPreview = true; field.Type = intEntity; logger.Fields.Add(field); field = new EntityField(); field.Name = "url"; field.IsPreview = true; field.Represents = true; field.Type = stringEntity; field.MaxSize = 1000; logger.Fields.Add(field); field = new EntityField(); field.Name = "date"; field.IsPreview = true; field.Type = dateTimeEntity; logger.Fields.Add(field); field = new EntityField(); field.Name = "requestTime"; field.IsPreview = true; field.Type = intEntity; logger.Fields.Add(field); field = new EntityField(); field.Name = "referrer"; field.Type = stringEntity; field.IsRequired = false; field.MaxSize = 1000; logger.Fields.Add(field); field = new EntityField(); field.Name = "ip"; field.Type = stringEntity; field.MaxSize = 15; logger.Fields.Add(field); field = new EntityField(); field.Name = "userAgent"; field.Type = stringEntity; field.MaxSize = 1500; logger.Fields.Add(field); return logger; }
private static void BuildClassTestModel() { EntityInterface iPerson = GetInterface(); EntityClass parent = new EntityClass(); parent.Name = "Pai"; EntityClass category = new EntityClass(); category.Name = "Category"; category.Visibility = "public"; category.Interfaces.Add(iPerson); category.Parent = parent; EntityField field = new EntityField(); field.Name = "Id"; field.Visibility = "protected"; field.IsPrimaryKey = true; field.Type = new Int(); category.Fields.Add(field); field = new EntityField(); field.Name = "Description"; field.IsRequired = true; field.MaxSize = 500; field.Type = new Loki.DataRepresentation.IntrinsicEntities.String(); category.Fields.Add(field); category.IsAbstract = true; category.Persistable = true; category.Visibility = "protected"; EntityMethod init = new EntityMethod(); init.Name = "Init"; category.Methods.Add(init); Model list = new Model(); list.Add(category); classes.Model = list; }
private void BuildChannelEntryConnection(EntityClass channel, EntityClass entry) { EntityField channelEntries = new EntityField("entries"); channelEntries.Type = channel; channelEntries.Mult = Multiplicity.OneToMany; channel.Fields.Add(channelEntries); EntityField entryChannel = new EntityField("Channel"); entryChannel.Type = channel; entryChannel.Mult = Multiplicity.ManyToOne; entry.Fields.Add(entryChannel); }
private void ResolveReferenceMultiplicity( EntityField field ) { if( field.ReferenceType != null ) { switch( field.Mult ) { case Multiplicity.OneToMany: field.ReferenceType.Mult = Multiplicity.ManyToOne; break; case Multiplicity.ManyToOne: field.ReferenceType.Mult = Multiplicity.OneToMany; break; default: field.ReferenceType.Mult = field.Mult; break; } } }
private EntityField CreateEntityField( XmlNode element ) { EntityField field = new EntityField(); if( element.Attributes["xmi:id"] != null ) { field.Id = element.Attributes["xmi:id"].Value; } if( element.Attributes["name"] != null ) { field.Name = element.Attributes["name"].Value; } if( element.Attributes["visibility"] != null ) { field.Visibility = element.Attributes["visibility"].Value; } if( element.Attributes["ownerScope"] != null && element.Attributes["ownerScope"].Value.CompareTo( "instance" ) != 0 ) { field.FieldModifier += "static"; } return field; }
private void AddIds() { foreach( IEntity entity in project.Model ) { if( entity is EntityClass ) { EntityClass e = entity as EntityClass; if (!e.RootEntity) { // Derived classes inherit the Id from the parent continue; } EntityField field = new EntityField(); field.Name = "id"; field.IsPrimaryKey = true; field.FieldModifier = "private"; field.Type = new Loki.DataRepresentation.IntrinsicEntities.Int(); e.Fields.Insert( 0, field ); } } }
private void GenerateEntityFieldEditorDesigner(Entity entity, EntityField field) { string output = GetRelativeOutputDir(entity.Name + field.PropertyName + "EditorDesigner.cs", "Controls/" + entity.Name + "/Designer/"); Aggregator.RegisterFile(ComponentType.WebUserInterface.ToString(), output); Dictionary<string, object> variables = new Dictionary<string, object>(); variables.Add("namespace", Namespace); variables.Add("entity", entity); variables.Add("field", field); variables.Add("DALNamespace", Project.Name + "." + ComponentType.DataAccessLayer.ToString()); variables.Add("CoreNamespace", Project.Name + "." + ComponentType.Core.ToString()); Templates.Generate(GetResource("Designer/EditorDesigner.cs.vtl"), output, variables); Log.Info("Generated `{0}'", output); }
private void BuildParticipants(EntityClass participants) { EntityField participantsId = new EntityField("id"); participantsId.IsPreview = true; participantsId.IsRequired = true; participantsId.IsPrimaryKey = true; participantsId.Represents = true; participantsId.Type = intEntity; participants.Fields.Add(participantsId); EntityClass principal = (EntityClass)Project.Model.GetByName("Principal"); EntityField principalRef = new EntityField("principal"); principalRef.Mult = Multiplicity.ManyToOne; principalRef.Type = principal; participants.Fields.Add(principalRef); EntityField participantRef = new EntityField("Participants"); participantRef.Mult = Multiplicity.OneToMany; participantRef.Type = participants; principal.Fields.Add(participantRef); }
private static void BuildSmsTestModel() { EntityField field = null; /** User **/ EntityClass user = new EntityClass(); user.Name = "Principal"; user.Visibility = "public"; field = new EntityField(); field.Name = "Id"; field.IsPrimaryKey = true; field.Type = new Int(); user.Fields.Add(field); /** IDescription Definition **/ EntityInterface iDescription = new EntityInterface(); iDescription.Name = "IDescription"; iDescription.Visibility = "public"; EntityMethod getDescription = new EntityMethod(); getDescription.Name = "GetDescription"; EntityParameter param = new EntityParameter(); param.IsReturn = true; param.Type = IntrinsicTypes.Create( "System.String" ); getDescription.ReturnEntity = param; iDescription.Methods.Add(getDescription); /** Category Definition **/ EntityClass category = new EntityClass(); category.Name = "Category"; category.Visibility = "public"; //category.Interfaces.Add(iDescription); field = new EntityField(); field.Name = "Id"; field.IsPrimaryKey = true; field.Type = new Int(); category.Fields.Add(field); field = new EntityField(); field.Name = "Description"; field.IsRequired = true; field.MaxSize = 500; field.Type = new Loki.DataRepresentation.IntrinsicEntities.String(); category.Fields.Add(field); /** Sms Definition **/ EntityClass message = new EntityClass(); message.Name = "SmsBase"; message.IsAbstract = true; message.Visibility = "public"; //message.Interfaces.Add(iDescription); field = new EntityField(); field.Name = "Id"; field.IsPrimaryKey = true; field.Type = new Int(); message.Fields.Add(field); field = new EntityField(); field.Name = "Description"; field.IsRequired = true; field.MaxSize = 500; field.Default = "No Description"; field.Type = new Loki.DataRepresentation.IntrinsicEntities.String(); message.Fields.Add(field); field = new EntityField(); field.Name = "Category"; field.Type = category; field.Mult = Multiplicity.ManyToOne; field.IsRequired = true; message.Fields.Add(field); field = new EntityField(); field.Name = "Principal"; field.Type = user; field.Mult = Multiplicity.ManyToOne; field.IsRequired = true; message.Fields.Add(field); field = new EntityField(); field.Name = "Messages"; field.Type = message; field.Mult = Multiplicity.OneToMany; field.InfoOnly = true; user.Fields.Add(field); field = new EntityField(); field.Name = "Messages"; field.Type = message; field.InfoOnly = true; field.Mult = Multiplicity.OneToMany; category.Fields.Add(field); /** ImageSms **/ EntityClass imageSms = new EntityClass(); imageSms.Name = "ImageSms"; imageSms.Visibility = "public"; imageSms.Parent = message; field = new EntityField(); field.Name = "ImageUrl"; field.Type = new Loki.DataRepresentation.IntrinsicEntities.String(); field.IsRequired = true; field.Default = "#"; imageSms.Fields.Add(field); /** TextSms **/ EntityClass textSms = new EntityClass(); textSms.Name = "TextSms"; textSms.Visibility = "public"; textSms.Parent = message; field = new EntityField(); field.Name = "Text"; field.Type = new Loki.DataRepresentation.IntrinsicEntities.String(); field.IsRequired = true; field.Default = "Empty"; textSms.Fields.Add(field); /** Setting up project **/ Model list = new Model(); list.Add(category); list.Add(iDescription); list.Add(user); list.Add(message); list.Add(imageSms); list.Add(textSms); smsTestModel.Model = list; }
private void WriteEntityField(StreamWriter writer, EntityField field) { writer.Write("\t\t<column name=\"{0}\" ", field.Name); if (field.IsPrimaryKey) { writer.Write("primaryKey=\"true\" "); } if (field.IsRequired) { writer.Write("required=\"true\" "); } if (field.HasDefault) { writer.Write("default=\"{0}\" ", field.Default); } writer.Write("type=\"{0}\" ", GetEntityType(field)); writer.WriteLine("/>"); }
private string GetEntityType(EntityField field) { if (field.Type.IsIntrinsic) { object obj = IntrinsicTypeMapping[field.Type.AccessInterface]; if (obj == null) { throw new LokiException("Can't map intrinsic `{0}' to a Neo type", field.Type.Name); } return obj.ToString(); } // é chave estrangeira foreign.Add(field); return IntrinsicTypeMapping["int"]; }
private void SetupConnection(EntityClass logger, EntityClass principal) { EntityField principalRef = new EntityField(); principalRef.Name = "principal"; principalRef.IsRequired = false; principalRef.Mult = Multiplicity.ManyToOne; principalRef.Type = principal; logger.Fields.Add(principalRef); EntityField loggerRef = new EntityField(); loggerRef.Name = "Requests"; loggerRef.Type = logger; loggerRef.Mult = Multiplicity.OneToMany; principal.Fields.Add(loggerRef); }
private void BuildChannelParticipantConnection(EntityClass channel, EntityClass participants) { EntityField channelParticipants = new EntityField("participants"); channelParticipants.Type = participants; channelParticipants.Mult = Multiplicity.OneToMany; channel.Fields.Add(channelParticipants); EntityField participantChannel = new EntityField("Channel"); participantChannel.Type = channel; participantChannel.Mult = Multiplicity.ManyToOne; participants.Fields.Add(participantChannel); }
public void AddField( EntityField field ) { fields.Add(field); }
private void BuildEntry(EntityClass entry) { EntityField id = new EntityField("id"); id.IsPreview = true; id.IsRequired = true; id.Represents = true; id.IsPrimaryKey = true; id.Type = intEntity; entry.Fields.Add(id); EntityField text = new EntityField("text"); text.IsPreview = false; text.Represents = false; text.Type = stringEntity; text.MaxSize = 3000; entry.Fields.Add(text); EntityField date = new EntityField("date"); date.IsPreview = true; date.Type = dateTimeEntity; entry.Fields.Add(date); EntityClass principal = (EntityClass)Project.Model.GetByName("Principal"); EntityField principalField = new EntityField("Principal"); principalField.IsPreview = false; principalField.Represents = true; principalField.Type = principal; principalField.Mult = Multiplicity.ManyToOne; entry.Fields.Add(principalField); EntityField principalEntries = new EntityField("ChannelEntries"); principalEntries.Type = entry; principalEntries.Mult = Multiplicity.OneToMany; principal.Fields.Add(principalEntries); }
public void ResolveReference( IEntityAttribute field ) { if( field is EntityField && field.Type is EntityClass ) { EntityField e = (EntityField)field; if( e.ReferenceType == null && e.Type != null && e.Mult != Multiplicity.OneToOne ) { EntityField reference = new EntityField(); reference.Name = e.Parent.Name; reference.Type = e.Parent; reference.InfoOnly = true; reference.ReferenceType = e; EntityClass entity = ((EntityClass)field.Type); if( entity.HasField( reference.Name ) ) { e.ReferenceType = entity.GetField( reference.Name ); }else{ e.ReferenceType = reference; entity.AddField( reference ); } ResolveReferenceMultiplicity( e ); } } }
private void BuildChannel(EntityClass channel) { EntityField channelId = new EntityField("id"); channelId.IsRequired = true; channelId.IsPrimaryKey = true; channelId.IsPreview = true; channelId.Type = intEntity; channel.Fields.Add(channelId); EntityField channelName = new EntityField("name"); channelName.IsPreview = true; channelName.IsRequired = true; channelName.Represents = true; channelName.Type = stringEntity; channel.Fields.Add(channelName); }
public void AddField(EntityField field) { fields.Add(field); }