diff options
author | Julien HENRY <henryju@yahoo.fr> | 2017-10-03 18:33:55 +0200 |
---|---|---|
committer | Julien HENRY <julien.henry@sonarsource.com> | 2017-10-04 13:48:58 +0200 |
commit | 7aae33867472515bcec1d5161e6fca8d31d6c0bd (patch) | |
tree | 1b22504ab0daf84301c42ecbcdab0ce7ff38c0c2 /sonar-duplications/src/main | |
parent | b811d8eaa4bce4d6bdd5ec7164ecb4ad5fa979c8 (diff) | |
download | sonarqube-7aae33867472515bcec1d5161e6fca8d31d6c0bd.tar.gz sonarqube-7aae33867472515bcec1d5161e6fca8d31d6c0bd.zip |
SONAR-9111 Remove Guava dependency from sonar-duplications
Diffstat (limited to 'sonar-duplications/src/main')
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; |