Skip to content

Commit 78da0e9

Browse files
authored
fix: simplify parsePath (#182)
* Remove need to use regex and split on single character * Remove check for `null` or empty since its checked before
1 parent 62ac909 commit 78da0e9

1 file changed

Lines changed: 4 additions & 10 deletions

File tree

src/main/java/com/github/packageurl/PackageURL.java

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import java.util.Objects;
3333
import java.util.TreeMap;
3434
import java.util.function.IntPredicate;
35-
import java.util.regex.Pattern;
3635
import java.util.stream.Collectors;
3736

3837
/**
@@ -54,7 +53,6 @@
5453
public final class PackageURL implements Serializable {
5554

5655
private static final long serialVersionUID = 3243226021636427586L;
57-
private static final Pattern PATH_SPLITTER = Pattern.compile("/");
5856

5957
/**
6058
* Constructs a new PackageURL object by parsing the specified string.
@@ -724,19 +722,15 @@ private Map<String, String> parseQualifiers(final String encodedString) throws M
724722
}
725723
}
726724

727-
@SuppressWarnings("StringSplitter")//reason: surprising behavior is okay in this case
728-
private String[] parsePath(final String value, final boolean isSubpath) {
729-
if (value == null || value.isEmpty()) {
730-
return null;
731-
}
732-
return PATH_SPLITTER.splitAsStream(value)
725+
private String[] parsePath(final String path, final boolean isSubpath) {
726+
return Arrays.stream(path.split("/"))
733727
.filter(segment -> !segment.isEmpty() && !(isSubpath && (".".equals(segment) || "..".equals(segment))))
734-
.map(segment -> percentDecode(segment))
728+
.map(this::percentDecode)
735729
.toArray(String[]::new);
736730
}
737731

738732
private String encodePath(final String path) {
739-
return Arrays.stream(path.split("/")).map(segment -> percentEncode(segment)).collect(Collectors.joining("/"));
733+
return Arrays.stream(path.split("/")).map(this::percentEncode).collect(Collectors.joining("/"));
740734
}
741735

742736
/**

0 commit comments

Comments
 (0)