private void OriginatingLineStyle_MiddleImageClick(object sender, MouseEventArgs e) { LinkLine line = (LinkLine)sender; ComponentImpl component = (ComponentImpl)line.DataObject; List <Entity> unavailableEntities = new List <Entity>(); UserControls.FormComponentMappingEditor MappingEditor = new ArchAngel.Providers.EntityModel.UI.Editors.UserControls.FormComponentMappingEditor(); MappingEditor.Fill(ComponentSpecification, component.ParentEntity); Point pt = line.MidPoint; pt.Offset(-1 * MappingEditor.Width / 2, -1 * MappingEditor.Height / 2); if (pt.Y < 2) { pt.Offset(0, 5 - pt.Y); } MappingEditor.Location = pt; //MappingEditor.BringToFront(); //MappingEditor.Visible = true; //MappingEditor.Refresh(); if (MappingEditor.ShowDialog(this) == DialogResult.OK) { //Populate(); } Populate(); }
/// <summary> /// Create a NULL component to conform to Null Object pattern /// </summary> /// <param name="customer"></param> /// <returns></returns> public static ComponentImpl Empty(this ComponentImpl component) { return(new ComponentImpl() { ComponentId = NULL_ID, Description = "", JobId = NULL_ID, Job = new JobImpl().Empty() }); }
/// <summary> /// Convert a ComponentImpl from a straight Component object /// </summary> /// <param name="component"></param> /// <returns></returns> public static ComponentImpl ToComponentImpl(this Component component) { var componentImpl = new ComponentImpl() { ComponentId = component.Id, Description = component.Description.TrimEnd(), JobId = component.JobId }; return(componentImpl); }
/// <summary> /// Create a Component from a ComponentImpl /// </summary> /// <param name="componentImpl"></param> /// <returns></returns> public static Component ToComponent(this ComponentImpl componentImpl) { var component = new Component() { Id = componentImpl.ComponentId, Description = componentImpl.Description.TrimEnd(), JobId = componentImpl.JobId }; return(component); }
public void It_Fails_If_There_Is_No_KeyType() { Entity parentEntity = new EntityImpl(); Component component = new ComponentImpl { Name = "Component_Name" }; parentEntity.AddComponent(component); Property prop = new PropertyImpl { Name = "Property1" }; parentEntity.AddProperty(prop); new EntitySetDeserialisationScheme().DeserialiseKey(NoTypeXml.GetXmlDocRoot(), parentEntity); }
public void It_Should_Serialise_To_This() { const string expectedXML = BasicComponentXml; var component = new ComponentImpl(); component.ParentEntity = new EntityImpl("Entity1"); component.Name = "HomeAddress"; string outputXML = new EntitySetSerialisationScheme().SerialiseComponent(component); outputXML = XmlSqueezer.RemoveWhitespaceBetweenElements(outputXML); Assert.That(outputXML, Is.EqualTo(expectedXML)); }
public void It_Should_Create_This() { Entity parentEntity = new EntityImpl(); Component component = new ComponentImpl { Name = "Component_Name" }; parentEntity.AddComponent(component); EntityKey key = new EntitySetDeserialisationScheme().DeserialiseKey(FullEntityXml.GetXmlDocRoot(), parentEntity); Assert.That(key.Properties, Is.Empty); Assert.That(key.Component, Is.SameAs(component)); Assert.That(key.KeyType, Is.EqualTo(EntityKeyType.Component)); }
public void It_Should_Create_This() { Entity parentEntity = new EntityImpl(); Component component = new ComponentImpl {Name = "Component_Name"}; parentEntity.AddComponent(component); Property prop = new PropertyImpl { Name = "Property1" }; parentEntity.AddProperty(prop); EntityKey key = new EntitySetDeserialisationScheme().DeserialiseKey(FullEntityXml.GetXmlDocRoot(), parentEntity); Assert.That(key.Properties.Count(), Is.EqualTo(1)); Assert.That(key.Properties.ElementAt(0), Is.SameAs(prop)); Assert.That(key.Component, Is.SameAs(component)); Assert.That(key.KeyType, Is.EqualTo(EntityKeyType.Properties)); }
public void Should_be_able_to_handle_null_value() { var value = new ValueImpl <string>(false, null); var component = new ComponentImpl(value); var segment = new SegmentImpl(component); using (Session session = _engine.CreateSession()) { session.Add <Segment>(segment); session.Run(); List <FactHandle <Route> > routes = session.Facts <Route>().ToList(); Assert.AreEqual(0, routes.Count); } }
private void PutDependecy(Dictionary<Reference, Component> dependencies, Reference reference, Service serv, Component comp) { List<Binding> bindings = new List<Binding>(); if (serv.Binding != null) bindings.Add(serv.Binding); if (reference.Binding != null) bindings.Add(reference.Binding); BindingTypeHolder binding = bindingGenerator.CheckForBindings(bindings); Component api = new ComponentImpl(); api.Name = comp.Name + "-API"; api.BaseComponent = comp; if (binding.hasAnyBinding()) { dependencies.Add(reference, api); } else { dependencies.Add(reference, comp); } }
public void GenerateModelModule(Namespace ns, List<Struct> entities, Dictionary<string, string> properties) { string baseJavaDir = directoryHandler.createJavaDirectory(ns, "Model", ""); //pom.xml string filename = Path.Combine(ns.Name + "-Model", "pom.xml"); Component comp = new ComponentImpl(); comp.Name = "Model"; using (StreamWriter writer = new StreamWriter(filename)) { writer.WriteLine(this.springConfigGen.GenerateComponentPom(ns, comp, new List<string>(), false, false, false, ComponentType.DATA)); } // generate persistence.xml if (entities.Any()) { string metaFolder = Path.Combine(ns.Name + "-Model", "src", "main", "resources", "META-INF"); Directory.CreateDirectory(metaFolder); filename = Path.Combine(metaFolder, "persistence.xml"); using (StreamWriter writer = new StreamWriter(filename)) { writer.WriteLine(this.springConfigGen.GeneratePersistence(ns, entities)); } } //entities foreach (Struct entity in entities) { // entity string entityDirectory = directoryHandler.createJavaDirectory(ns, "Model", this.generatorUtil.Properties.entityPackage); string javaFileName = Path.Combine(entityDirectory, entity.Name + ".java"); using (StreamWriter writer = new StreamWriter(javaFileName)) { writer.WriteLine(this.springClassGen.GenerateEntity(entity)); } } //enums foreach (Enum myEnum in ns.Declarations.OfType<Enum>()) { string enumDirectory = directoryHandler.createJavaDirectory(ns, "Model", this.generatorUtil.Properties.enumPackage); string javaFileName = Path.Combine(enumDirectory, myEnum.Name + ".java"); using (StreamWriter writer = new StreamWriter(javaFileName)) { writer.WriteLine(this.springClassGen.GenerateEnum(myEnum)); } } // manual config string dir = directoryHandler.createResourceDirectory(ns, "Model", ""); filename = Path.Combine(dir, "configuration.properties"); using (StreamWriter writer = new StreamWriter(filename)) { writer.WriteLine(this.springConfigGen.GenerateConfig(properties)); } filename = Path.Combine(baseJavaDir, "Configuration.java"); using (StreamWriter writer = new StreamWriter(filename)) { writer.WriteLine(this.springConfigGen.GenerateConfigClass(ns)); } }
public virtual void UpdateComponent(ComponentImpl component) { throw new NotImplementedException(); }
private void GenerateRemoteAccessTier(Namespace ns, List<string> modules, Component component, bool hasDirectDataAccess) { Component c = new ComponentImpl(); c.Name = component.Name + "-WEB"; modules.Add(c.Name); List<string> deps = new List<string>(); deps.Add(component.Name); this.directoryHandler.createJavaDirectory(ns, c.Name, ""); string fileName = Path.Combine(ns.Name + "-" + c.Name, "pom.xml"); using (StreamWriter writer = new StreamWriter(fileName)) { writer.WriteLine(this.springConfigGen.GenerateComponentPom(ns, c, deps, false, false, false, ComponentType.REMOTE)); } // web.xml string webinfDir = this.directoryHandler.createWebDirectory(ns, c.Name, ""); string webxmlFile = Path.Combine(webinfDir, "web.xml"); using (StreamWriter writer = new StreamWriter(webxmlFile)) { writer.WriteLine(this.springViewGen.GenerateWebXml(ComponentType.REMOTE)); } // deployment-struture string jbossFile = Path.Combine(webinfDir, "jboss-deployment-structure.xml"); using (StreamWriter writer = new StreamWriter(jbossFile)) { writer.WriteLine(this.springViewGen.GenerateJboss()); } // appCtx string ctxFile = Path.Combine(webinfDir, "applicationContext.xml"); using (StreamWriter writer = new StreamWriter(ctxFile)) { writer.WriteLine(this.springViewGen.GenerateAppCtx(ns, hasDirectDataAccess)); } // servlet string servletFile = Path.Combine(webinfDir, "spring-servlet.xml"); using (StreamWriter writer = new StreamWriter(servletFile)) { writer.WriteLine(this.springViewGen.GenerateServlet(ns, ComponentType.REMOTE)); } }
/// <summary> /// Update the given component /// </summary> /// <param name="component"></param> public void UpdateComponent(ComponentImpl component) { }
private void GenerateServiceImplementations(Namespace ns, List<string> modules, List<Wire> wires, Component component, List<string> dependencies, Dictionary<Reference, Component> dependencyMap) { modules.Add(component.Name + "-API"); BindingTypeHolder bindingsOfModule = new BindingTypeHolder(); string dataModule = ""; string dataBinding = ""; foreach (Reference reference in component.References) { if (reference.Interface is Database) { dataModule = dependencyMap[reference].Name; List<Binding> binds = bindingDiscoverer.GetBindings(ns, reference); BindingTypeHolder binding = bindingDiscoverer.CheckForBindings(binds); if (binding.HasRestBinding) dataBinding = "Rest"; else if (binding.HasWebServiceBinding) dataBinding = "WebService"; else if (binding.HasWebSocketBinding) dataBinding = "WebSocket"; } } bool hasDirectDataAccess = dataBinding == "" && this.dataAccessFinder.HasDirectDataAccess(ns, wires, component, dataModule); foreach (Service service in component.Services) { if (service.Interface is Database) { hasDirectDataAccess = true; //itself } } ComponentType cType = ComponentType.API; foreach (Service service in component.Services) { Interface iface = service.Interface; if (iface is Database) { cType = ComponentType.DATA; continue; } // Repositry interfaces have been generated already string package = this.PackageOf(iface); string apiIfDirectory = this.directoryHandler.createJavaDirectory(ns, component.Name + "-API", package); string functionDirectory = this.directoryHandler.createJavaDirectory(ns, component.Name, component.Name.ToLower()); string entityName = null; if (package == this.generatorUtil.Properties.interfacePackage) { // interface goes to API string interfaceFileName = Path.Combine(apiIfDirectory, iface.Name + ".java"); using (StreamWriter writer = new StreamWriter(interfaceFileName)) { writer.WriteLine(this.springInterfaceGen.GenerateInterface(iface, "", package, null)); } // implementaton goes to component string javaFileName = Path.Combine(functionDirectory, iface.Name + "Impl.java"); using (StreamWriter writer = new StreamWriter(javaFileName)) { writer.WriteLine(this.springInterfaceGen.GenerateInterfaceImplementation(iface, component.Name.ToLower(), dataBinding)); } } else // a Spring Repository { Struct entity = null; foreach (Operation op in iface.Operations) { if (op.Name == "delete") { if (op.Parameters.Count == 1) { SoalType type = op.Parameters[0].Type; if (type is Struct) { entity = type as Struct; break; } } } } if (entity != null) { entityName = entity.Name; string javaFileName = Path.Combine(apiIfDirectory, entityName + "Repository.java"); using (StreamWriter writer = new StreamWriter(javaFileName)) { writer.WriteLine(this.springClassGen.GenerateRepository(entity)); } } } List<Binding> bindings = this.bindingDiscoverer.GetBindings(ns, service); BindingTypeHolder bindingsOfService = this.bindingDiscoverer.CheckForBindings(bindings); this.CreateBindings(bindingsOfService, component, iface, apiIfDirectory, functionDirectory, package, entityName, dataBinding); bindingsOfModule.HasRestBinding |= bindingsOfService.HasRestBinding; bindingsOfModule.HasWebServiceBinding |= bindingsOfService.HasWebServiceBinding; bindingsOfModule.HasWebSocketBinding |= bindingsOfService.HasWebSocketBinding; foreach (Operation op in iface.Operations) { foreach (Struct exception in op.Exceptions) { string apiExDirectory = this.directoryHandler.createJavaDirectory(ns, component.Name + "-API", generatorUtil.Properties.exceptionPackage); string exFileName = Path.Combine(apiExDirectory, exception.Name + ".java"); using (StreamWriter writer = new StreamWriter(exFileName)) { writer.WriteLine(this.springClassGen.GenerateException(exception)); } } } } // pom.xml of API List<string> apiDependencies = new List<string>(dependencies); apiDependencies.Add("Model"); this.directoryHandler.createJavaDirectory(ns, component.Name + "-API", ""); string fileName = Path.Combine(ns.Name + "-" + component.Name + "-API", "pom.xml"); using (StreamWriter writer = new StreamWriter(fileName)) { // remove dependency from data module apiDependencies.Remove(dataModule); apiDependencies.Remove(dataModule + "-API"); Component c = new ComponentImpl(); c.Name = component.Name + "-API"; string output = this.springConfigGen.GenerateComponentPom(ns, c, apiDependencies, bindingsOfModule.HasRestBinding, bindingsOfModule.HasWebServiceBinding, bindingsOfModule.HasWebSocketBinding, cType); writer.WriteLine(output); } if (bindingsOfModule.hasAnyBinding()) { GenerateRemoteAccessTier(ns, modules, component, hasDirectDataAccess); } dependencies.Add(component.Name + "-API"); }
/// <summary> /// Create the given component /// </summary> /// <param name="component"></param> public void CreateComponent(ComponentImpl component) { throw new NotImplementedException(); }
/// <summary> /// Determine if this is a null pattern object /// </summary> /// <param name="customer"></param> /// <returns></returns> public static bool IsEmpty(this ComponentImpl component) { return(component.ComponentId == NULL_ID); }
/// <summary> /// Create the given component /// </summary> /// <param name="component"></param> public void CreateComponent(ComponentImpl component) { }