aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-duplications/src/main
diff options
context:
space:
mode:
authorJulien HENRY <henryju@yahoo.fr>2017-10-03 18:33:55 +0200
committerJulien HENRY <julien.henry@sonarsource.com>2017-10-04 13:48:58 +0200
commit7aae33867472515bcec1d5161e6fca8d31d6c0bd (patch)
tree1b22504ab0daf84301c42ecbcdab0ce7ff38c0c2 /sonar-duplications/src/main
parentb811d8eaa4bce4d6bdd5ec7164ecb4ad5fa979c8 (diff)
downloadsonarqube-7aae33867472515bcec1d5161e6fca8d31d6c0bd.tar.gz
sonarqube-7aae33867472515bcec1d5161e6fca8d31d6c0bd.zip
SONAR-9111 Remove Guava dependency from sonar-duplications
Diffstat (limited to 'sonar-duplications/src/main')
-rw-r--r--sonar-duplications/src/main/java/org/sonar/duplications/index/CloneGroup.java7
-rw-r--r--sonar-duplications/src/main/java/org/sonar/duplications/index/MemoryCloneIndex.java23
-rw-r--r--sonar-duplications/src/main/java/org/sonar/duplications/internal/pmd/TokenizerBridge.java16
-rw-r--r--sonar-duplications/src/main/java/org/sonar/duplications/internal/pmd/TokensLine.java5
4 files changed, 26 insertions, 25 deletions
diff --git a/sonar-duplications/src/main/java/org/sonar/duplications/index/CloneGroup.java b/sonar-duplications/src/main/java/org/sonar/duplications/index/CloneGroup.java
index f7f8376d30d..c4b4128330e 100644
--- a/sonar-duplications/src/main/java/org/sonar/duplications/index/CloneGroup.java
+++ b/sonar-duplications/src/main/java/org/sonar/duplications/index/CloneGroup.java
@@ -19,10 +19,9 @@
*/
package org.sonar.duplications.index;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
/**
* Groups a set of related {@link ClonePart}s.
@@ -66,12 +65,12 @@ public class CloneGroup {
}
public Builder setParts(List<ClonePart> parts) {
- this.parts = ImmutableList.copyOf(parts);
+ this.parts = new ArrayList<>(parts);
return this;
}
public Builder addPart(ClonePart part) {
- Preconditions.checkNotNull(part);
+ Objects.requireNonNull(part);
this.parts.add(part);
return this;
}
diff --git a/sonar-duplications/src/main/java/org/sonar/duplications/index/MemoryCloneIndex.java b/sonar-duplications/src/main/java/org/sonar/duplications/index/MemoryCloneIndex.java
index 6f5dae640a5..02f71965b8e 100644
--- a/sonar-duplications/src/main/java/org/sonar/duplications/index/MemoryCloneIndex.java
+++ b/sonar-duplications/src/main/java/org/sonar/duplications/index/MemoryCloneIndex.java
@@ -19,34 +19,35 @@
*/
package org.sonar.duplications.index;
-import com.google.common.collect.ArrayListMultimap;
-import com.google.common.collect.Multimap;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
import org.sonar.duplications.block.Block;
import org.sonar.duplications.block.ByteArray;
import org.sonar.duplications.index.PackedMemoryCloneIndex.ResourceBlocks;
-import java.util.Collection;
-import java.util.Iterator;
-
public class MemoryCloneIndex implements CloneIndex {
- private Multimap<String, Block> byResource = ArrayListMultimap.create();
- private Multimap<ByteArray, Block> byHash = ArrayListMultimap.create();
+ private Map<String, List<Block>> byResource = new LinkedHashMap<>();
+ private Map<ByteArray, List<Block>> byHash = new LinkedHashMap<>();
@Override
public Collection<Block> getByResourceId(String resourceId) {
- return byResource.get(resourceId);
+ return byResource.computeIfAbsent(resourceId, k -> new ArrayList<>());
}
@Override
public Collection<Block> getBySequenceHash(ByteArray sequenceHash) {
- return byHash.get(sequenceHash);
+ return byHash.computeIfAbsent(sequenceHash, k -> new ArrayList<>());
}
@Override
public void insert(Block block) {
- byResource.put(block.getResourceId(), block);
- byHash.put(block.getBlockHash(), block);
+ getByResourceId(block.getResourceId()).add(block);
+ getBySequenceHash(block.getBlockHash()).add(block);
}
@Override
diff --git a/sonar-duplications/src/main/java/org/sonar/duplications/internal/pmd/TokenizerBridge.java b/sonar-duplications/src/main/java/org/sonar/duplications/internal/pmd/TokenizerBridge.java
index 0fc08827663..97337e5419f 100644
--- a/sonar-duplications/src/main/java/org/sonar/duplications/internal/pmd/TokenizerBridge.java
+++ b/sonar-duplications/src/main/java/org/sonar/duplications/internal/pmd/TokenizerBridge.java
@@ -19,10 +19,8 @@
*/
package org.sonar.duplications.internal.pmd;
-import com.google.common.base.Throwables;
-import com.google.common.collect.ImmutableList;
-import java.io.IOException;
import java.io.Reader;
+import java.util.ArrayList;
import java.util.List;
import net.sourceforge.pmd.cpd.SourceCode;
import net.sourceforge.pmd.cpd.TokenEntry;
@@ -54,8 +52,10 @@ public class TokenizerBridge {
TokenEntry.clearImages();
try {
tokenizer.tokenize(sourceCode, tokens);
- } catch (IOException e) {
- throw Throwables.propagate(e);
+ } catch (RuntimeException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new RuntimeException(e);
}
TokenEntry.clearImages();
return convert(tokens.getTokens());
@@ -66,7 +66,7 @@ public class TokenizerBridge {
* tokens ordered by occurrence in source code and last token is EOF.
*/
public static List<TokensLine> convert(List<TokenEntry> tokens) {
- ImmutableList.Builder<TokensLine> result = ImmutableList.builder();
+ List<TokensLine> result = new ArrayList<>();
StringBuilder sb = new StringBuilder();
int startLine = Integer.MIN_VALUE;
int startIndex = 0;
@@ -85,10 +85,10 @@ public class TokenizerBridge {
}
}
addNewTokensLine(result, startIndex, currentIndex, startLine, sb);
- return result.build();
+ return result;
}
- private static void addNewTokensLine(ImmutableList.Builder<TokensLine> result, int startUnit, int endUnit, int startLine, StringBuilder sb) {
+ private static void addNewTokensLine(List<TokensLine> result, int startUnit, int endUnit, int startLine, StringBuilder sb) {
if (sb.length() != 0) {
result.add(new TokensLine(startUnit, endUnit, startLine, sb.toString()));
sb.setLength(0);
diff --git a/sonar-duplications/src/main/java/org/sonar/duplications/internal/pmd/TokensLine.java b/sonar-duplications/src/main/java/org/sonar/duplications/internal/pmd/TokensLine.java
index b32f5af1102..aeb8632fe87 100644
--- a/sonar-duplications/src/main/java/org/sonar/duplications/internal/pmd/TokensLine.java
+++ b/sonar-duplications/src/main/java/org/sonar/duplications/internal/pmd/TokensLine.java
@@ -19,7 +19,6 @@
*/
package org.sonar.duplications.internal.pmd;
-import com.google.common.base.Preconditions;
import org.sonar.duplications.CodeFragment;
/**
@@ -36,7 +35,9 @@ public class TokensLine implements CodeFragment {
private final int endUnit;
public TokensLine(int startUnit, int endUnit, int startLine, String value) {
- Preconditions.checkArgument(startLine > 0);
+ if (startLine <= 0) {
+ throw new IllegalArgumentException("Start line should be strictly positive");
+ }
// TODO do we have requirements for length and hashcode ?
this.startLine = startLine;
this.value = value;