Beispiel #1
0
        /// <summary>
        /// stores the semi into the Aggregation element
        /// </summary>
        /// <param name="semi">the semi to be stored</param>
        public override void doActionAggregation(CSsemi.CSemiExp semi)
        {
            AggregationElem aggregationelem    = new AggregationElem();
            Elem            elem               = new Elem();
            bool            existingAggregator = false;

            for (int i = 0; i < repo_.analyzedata.Count; i++)
            {
                elem = repo_.analyzedata[i];
                if (elem.type == "class" && semi[0] == elem.name)
                {
                    for (int j = 0; j < repo_.aggregationdata.Count; j++)
                    {
                        aggregationelem = repo_.aggregationdata[j];
                        if (semi[2] == aggregationelem.aggregator)
                        {
                            existingAggregator = true;
                            int index = repo_.aggregationdata.IndexOf(aggregationelem);
                            aggregationelem.aggregated.Add(semi[1]);
                            aggregationelem.type = semi[0];
                            repo_.aggregationdata.Remove(aggregationelem);
                            repo_.aggregationdata.Insert(index, aggregationelem);
                        }
                    }

                    if (!existingAggregator)
                    {
                        aggregationelem = new AggregationElem();
                        aggregationelem.aggregated.Add(semi[1]);
                        aggregationelem.aggregator = semi[2];
                        aggregationelem.type       = semi[0];
                        repo_.aggregationdata.Add(aggregationelem);
                    }

                    createPackageAnalysisList("Aggregation", semi, i);
                }
            }
        }
        /// <summary>
        /// stores the semi into the Aggregation element
        /// </summary>
        /// <param name="semi">the semi to be stored</param>
        public override void doActionAggregation(CSsemi.CSemiExp semi)
        {
            AggregationElem aggregationelem = new AggregationElem();
            Elem elem = new Elem();
            bool existingAggregator = false;

            for (int i = 0; i < repo_.analyzedata.Count; i++)
            {
                elem = repo_.analyzedata[i];
                if (elem.type == "class" && semi[0] == elem.name)
                {
                    for (int j = 0; j < repo_.aggregationdata.Count; j++)
                    {
                        aggregationelem = repo_.aggregationdata[j];
                        if (semi[2] == aggregationelem.aggregator)
                        {
                            existingAggregator = true;
                            int index = repo_.aggregationdata.IndexOf(aggregationelem);
                            aggregationelem.aggregated.Add(semi[1]);
                            aggregationelem.type = semi[0];
                            repo_.aggregationdata.Remove(aggregationelem);
                            repo_.aggregationdata.Insert(index, aggregationelem);
                        }
                    }

                    if (!existingAggregator)
                    {
                        aggregationelem = new AggregationElem();
                        aggregationelem.aggregated.Add(semi[1]);
                        aggregationelem.aggregator = semi[2];
                        aggregationelem.type = semi[0];
                        repo_.aggregationdata.Add(aggregationelem);
                    }

                    createPackageAnalysisList("Aggregation", semi, i);
                }
            }
        }