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();
        }
Exemplo n.º 2
0
 /// <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()
     });
 }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        /// <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_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));
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        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));
        }
Exemplo n.º 11
0
        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);
            }
        }
Exemplo n.º 12
0
        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);
            }
        }
Exemplo n.º 13
0
        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));
            }
        }
Exemplo n.º 14
0
 public virtual void UpdateComponent(ComponentImpl component)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 15
0
        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)
 {
 }
Exemplo n.º 17
0
        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");
        }
Exemplo n.º 18
0
 /// <summary>
 /// Create the given component
 /// </summary>
 /// <param name="component"></param>
 public void CreateComponent(ComponentImpl component)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 19
0
 /// <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)
 {
 }