aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-squid/src/main/java/org/sonar/squid/Squid.java
diff options
context:
space:
mode:
Diffstat (limited to 'sonar-squid/src/main/java/org/sonar/squid/Squid.java')
-rw-r--r--sonar-squid/src/main/java/org/sonar/squid/Squid.java23
1 files changed, 17 insertions, 6 deletions
diff --git a/sonar-squid/src/main/java/org/sonar/squid/Squid.java b/sonar-squid/src/main/java/org/sonar/squid/Squid.java
index b2153e25ef0..760a457d770 100644
--- a/sonar-squid/src/main/java/org/sonar/squid/Squid.java
+++ b/sonar-squid/src/main/java/org/sonar/squid/Squid.java
@@ -20,20 +20,28 @@
package org.sonar.squid;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
import org.picocontainer.MutablePicoContainer;
import org.picocontainer.containers.TransientPicoContainer;
import org.sonar.graph.DirectedGraph;
import org.sonar.graph.DirectedGraphAccessor;
-import org.sonar.squid.api.*;
+import org.sonar.squid.api.CodeScanner;
+import org.sonar.squid.api.CodeVisitor;
+import org.sonar.squid.api.Query;
+import org.sonar.squid.api.SourceCode;
+import org.sonar.squid.api.SourceCodeEdge;
+import org.sonar.squid.api.SourceCodeSearchEngine;
+import org.sonar.squid.api.SourceCodeTreeDecorator;
+import org.sonar.squid.api.SourceProject;
+import org.sonar.squid.api.SquidConfiguration;
import org.sonar.squid.indexer.SquidIndex;
import org.sonar.squid.measures.Metric;
import org.sonar.squid.measures.MetricDef;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
public class Squid implements DirectedGraphAccessor<SourceCode, SourceCodeEdge>, SourceCodeSearchEngine {
private MutablePicoContainer pico;
@@ -67,6 +75,9 @@ public class Squid implements DirectedGraphAccessor<SourceCode, SourceCodeEdge>,
}
public <SCANNER extends CodeScanner> SCANNER register(Class<SCANNER> scannerClass) {
+ if(pico.getComponent(scannerClass) != null){
+ throw new IllegalStateException("The Squid SCANNER '" + scannerClass.getName() + "' can't be registered multiple times.");
+ }
addToPicocontainer(scannerClass);
SCANNER scanner = pico.getComponent(scannerClass);
for (Object clazz : scanner.getVisitorClasses()) {