]> git.uio.no Git - ifi-stolz-refaktor.git/commitdiff
AnalysisStatistics: moving type functionality to StatisticsAspect
authorErlend Kristiansen <erlenkr@ifi.uio.no>
Wed, 19 Feb 2014 09:14:31 +0000 (10:14 +0100)
committerErlend Kristiansen <erlenkr@ifi.uio.no>
Wed, 19 Feb 2014 09:14:31 +0000 (10:14 +0100)
software/no.uio.ifi.refaktor/src/no/uio/ifi/refaktor/analyze/AnalysisStatistics.java
software/no.uio.ifi.refaktor/src/no/uio/ifi/refaktor/analyze/analyzers/CompilationUnitWideExtractAndMoveMethodAnalyzer.java
software/no.uio.ifi.refaktor/src/no/uio/ifi/refaktor/analyze/analyzers/TypeWideExtractAndMoveMethodAnalyzer.java
software/no.uio.ifi.refaktor/src/no/uio/ifi/refaktor/aspects/StatisticsAspect.aj
software/no.uio.ifi.refaktor/src/no/uio/ifi/refaktor/handlers/TypeWideSearchBasedExtractAndMoveMethodAnalysisHandler.java

index 854a315e33ea3c453dcfc78da379d36c3ffb06df..a0f304c4eb2f5d6debd4f7e00597efac9612b155 100644 (file)
@@ -1,27 +1,19 @@
 package no.uio.ifi.refaktor.analyze;
 
+import no.uio.ifi.refaktor.aspects.StatisticsAspect;
+
 public class AnalysisStatistics {
-       private int typeCount;
        private int compilationUnitCount;
        private int packageCount;
        private long startTime;
        private String timeUsed;
 
        public void reset() {
-               typeCount = 0;
                compilationUnitCount = 0;
                packageCount = 0;
                startTime = System.currentTimeMillis();
        }
 
-       public void incrementTypeCount() {
-               typeCount++;
-       }
-
-       public int getTypeCount() {
-               return typeCount;
-       }
-
        public void incrementCompilationUnitCount() {
                compilationUnitCount++;
        }
@@ -60,7 +52,8 @@ public class AnalysisStatistics {
        public String toString() {
                return (getPackageCount() > 0 ? "Number of packages analyzed: " + getPackageCount() : "") 
                                + (getCompilationUnitCount() > 0 ? "\nNumber of compilation units analyzed: " + getCompilationUnitCount() : "")
-                               + (getTypeCount() > 0 ? "\nNumber of types analyzed: " + getTypeCount() : "")
+                               + (StatisticsAspect.aspectOf().getTypeCount() > 0 ? "\nNumber of types analyzed: " + StatisticsAspect.aspectOf().getTypeCount() : "")
+                               + "\nNumber of methods analyzed: " + StatisticsAspect.aspectOf().getMethodCount()
                                + "\nTime used: " + getTimeUsed();
        }
 }
\ No newline at end of file
index 3c2f80f23929ce035479b8ce6b88d01b53c16065..a16e8b9de4236a669273a7b56a3ed3caf367c648 100644 (file)
@@ -49,7 +49,7 @@ public class CompilationUnitWideExtractAndMoveMethodAnalyzer implements Aggregat
        }
 
        private void analyzeMethodsInType(IType type) throws JavaModelException {
-               TypeWideExtractAndMoveMethodAnalyzer analyzer = new TypeWideExtractAndMoveMethodAnalyzer(type, statistics);
+               TypeWideExtractAndMoveMethodAnalyzer analyzer = new TypeWideExtractAndMoveMethodAnalyzer(type);
                analyzer.analyze();
                results.addAll(analyzer.getResults());
        }
index 3a6567ec517f75206d580dbe867ea332e6d3f88f..f161e8a231fb717c89b64d4980db4bd5365234e4 100644 (file)
@@ -3,7 +3,6 @@ package no.uio.ifi.refaktor.analyze.analyzers;
 import java.util.LinkedList;
 import java.util.List;
 
-import no.uio.ifi.refaktor.analyze.AnalysisStatistics;
 import no.uio.ifi.refaktor.analyze.ExtractAndMoveMethodAnalysisResult;
 import no.uio.ifi.refaktor.analyze.comparators.FavorNoUnfixesAnalysisResultComparator;
 import no.uio.ifi.refaktor.analyze.exceptions.NoTargetFoundException;
@@ -21,12 +20,10 @@ import org.eclipse.jdt.core.JavaModelException;
 public class TypeWideExtractAndMoveMethodAnalyzer implements AggregationAnalyzer<ExtractAndMoveMethodAnalysisResult> {
 
        private final IType type;
-       private final AnalysisStatistics statistics;
        private final List<ExtractAndMoveMethodAnalysisResult> results;
 
-       public TypeWideExtractAndMoveMethodAnalyzer(IType type, AnalysisStatistics statistics) {
+       public TypeWideExtractAndMoveMethodAnalyzer(IType type) {
                this.type = type;
-               this.statistics = statistics;
                results = new LinkedList<ExtractAndMoveMethodAnalysisResult>();
        }
 
@@ -42,7 +39,6 @@ public class TypeWideExtractAndMoveMethodAnalyzer implements AggregationAnalyzer
                } catch (JavaModelException e) {
                        RefaktorDebug.log(e);
                }
-               statistics.incrementTypeCount();
        }
 
        private void analyzeMethodsInType() throws JavaModelException {
index 468a0ef833bbd6f40c8f6d407ddbb22b16f52115..cf42f34b09cd8e693bdae5bc866c1fea78d23681 100644 (file)
@@ -1,18 +1,23 @@
 package no.uio.ifi.refaktor.aspects;
 
 import no.uio.ifi.refaktor.analyze.analyzers.SearchBasedExtractAndMoveMethodAnalyzer;
+import no.uio.ifi.refaktor.analyze.analyzers.TypeWideExtractAndMoveMethodAnalyzer;
 import no.uio.ifi.refaktor.utils.RefaktorDebug;
 
 import org.eclipse.jdt.core.IMethod;
 import org.eclipse.jdt.core.JavaModelException;
 
+
 privileged public aspect StatisticsAspect {
        private long startTime;
        private int methodCount;
+       private int typeCount;
 
        pointcut methodAnalyze(SearchBasedExtractAndMoveMethodAnalyzer analyzer) : 
                call(* SearchBasedExtractAndMoveMethodAnalyzer.analyze()) && target(analyzer);
        
+       pointcut typeAnalyze() : call(* TypeWideExtractAndMoveMethodAnalyzer.analyze());
+       
        before(SearchBasedExtractAndMoveMethodAnalyzer analyzer) : methodAnalyze(analyzer) {
                methodCount++;
                debugPrintMethodAnalysisProgress(analyzer.method);
@@ -28,9 +33,14 @@ privileged public aspect StatisticsAspect {
                }
        }
        
+       after(): typeAnalyze() {
+               typeCount++;
+       }
+       
        public void init() {
                startTime = System.currentTimeMillis();
                methodCount = 0;
+               typeCount = 0;
        }
        
        public String timeSinceStart() {
@@ -46,6 +56,10 @@ privileged public aspect StatisticsAspect {
        public int getMethodCount() {
                return methodCount;
        }
+       
+       public int getTypeCount() {
+               return typeCount;
+       }
 
 //     @Override
 //     public String toString() {
index 48959e5ee578f227999d57df2eaa316b020f3037..f347d40d2dbefc5fe0141eca93c0a6a8b847f949 100644 (file)
@@ -14,7 +14,7 @@ public class TypeWideSearchBasedExtractAndMoveMethodAnalysisHandler extends Abst
        protected AggregationAnalyzer createAnalyzer(Object element, AnalysisStatistics statistics) {
                assertThat(element, instanceOf(IType.class));
                IType type = (IType) element;
-               return new TypeWideExtractAndMoveMethodAnalyzer(type, statistics);
+               return new TypeWideExtractAndMoveMethodAnalyzer(type);
        }
 
 }