예제 #1
0
        static void Main(string[] args)
        {
            List <Elem> typesFiles = new  List <Elem>();
            Elem        el         = new Elem();

            el.type           = "class";
            el.name           = "A_class";
            el.begin          = 1;
            el.end            = 10;
            el.size           = 9;
            el.prog_complexit = 1;
            typesFiles.Add(el);
            List <relationelem> relFiles = new  List <relationelem>();
            relationelem        r_el     = new relationelem();

            r_el.a_class       = "A_class";
            r_el.b_class       = "B_class";
            r_el.isInheritance = true;
            r_el.isAggregation = false;
            r_el.isComposition = false;
            relFiles.Add(r_el)
            xml_class xml_obj = new xml_class();

            xml_obj.display(List <Elem> typesFiles, List <relationelem> relFiles);
        }
예제 #2
0
        public override void doAction(CSsemi.CSemiExp semi)
        {
            Repository_types reporel_ = Repository_types.getInstance();

            //************************checks for inheritance***********************
            if (semi.Contains("inheritance") != -1)
            {
                int loc = semi.Contains("inheritance");
                if (loc != -1)
                {
                    Elem e = new Elem();
                    e.type = semi[loc + 3];
                    e.name = semi[loc + 1];
                    repo_.stack.push(e);
                    relationelem r_elem = new relationelem();
                    r_elem.a_class       = semi[loc + 1].ToString();
                    r_elem.b_class       = semi[loc + 2].ToString();
                    r_elem.isInheritance = true;
                    repo_.classrelations.Add(r_elem);
                }
            }

            //**************************** check for aggregation**************//
            if (semi.Contains("aggregation") != -1)
            {
                int loc = semi.Contains("aggregation");
                if (loc != -1)
                {
                    Elem e = new Elem();
                    e.type = semi[loc + 2];
                    e.name = semi[loc + 1];
                    repo_.stack.push(e);
                    int  i    = rep.locations.Count;
                    Elem temp = rep.locations[i - 1];
                    if (semi[1] != temp.name)
                    {
                        relationelem r_elem = new relationelem();
                        r_elem.a_class       = temp.name;
                        r_elem.b_class       = semi[1].ToString();
                        r_elem.isAggregation = true;
                        repo_.classrelations.Add(r_elem);
                    }
                }
            }


            if (AAction.displaySemi)
            {
                //Console.Write("\n  line# {0,-5}", repo_.semi.lineCount - 1);
                //Console.Write("entering ");
                //string indent = new string(' ', 2 * repo_.stack.count);
                //Console.Write("{0}", indent);
                //this.display(semi); // defined in abstract action
            }
            if (AAction.displayStack)
            {
                repo_.stack.display();
            }
        }