summaryrefslogtreecommitdiffstats
path: root/component
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-08-16 11:10:36 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2019-08-16 11:10:36 +0200
commita7b12771952032bfdfd8b872a7d962cadcb7da9c (patch)
treed825f883e39c2f50814f7de3fceac5842cb5c185 /component
parent1048eb2ff4d9398b8ebf94f940d313855c0b793f (diff)
Avoid using temporary arrays on frequently called code. Just do what you need.
Also chain StringBuilder.append for readability and unify on simple ternary operator.
Diffstat (limited to 'component')
-rw-r--r--component/src/main/java/com/yahoo/component/ComponentId.java6
-rw-r--r--component/src/main/java/com/yahoo/component/SpecSplitter.java43
-rw-r--r--component/src/main/java/com/yahoo/component/Version.java38
3 files changed, 30 insertions, 57 deletions
diff --git a/component/src/main/java/com/yahoo/component/ComponentId.java b/component/src/main/java/com/yahoo/component/ComponentId.java
index e1e1b43c08a..05c710e3fc1 100644
--- a/component/src/main/java/com/yahoo/component/ComponentId.java
+++ b/component/src/main/java/com/yahoo/component/ComponentId.java
@@ -87,9 +87,9 @@ public final class ComponentId implements Comparable<ComponentId> {
if (namespace == null) {
return this;
} else {
- ComponentId newNamespace = getNamespace() == null ?
- namespace :
- getNamespace().nestInNamespace(namespace);
+ ComponentId newNamespace = (getNamespace() == null)
+ ? namespace
+ : getNamespace().nestInNamespace(namespace);
return new ComponentId(getName(), getVersion(), newNamespace);
}
}
diff --git a/component/src/main/java/com/yahoo/component/SpecSplitter.java b/component/src/main/java/com/yahoo/component/SpecSplitter.java
index 07d5c573140..6bc4bed4094 100644
--- a/component/src/main/java/com/yahoo/component/SpecSplitter.java
+++ b/component/src/main/java/com/yahoo/component/SpecSplitter.java
@@ -1,9 +1,6 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.component;
-import java.util.Arrays;
-import java.util.List;
-
/**
* Splits and component id or component specification string into their constituent parts.
*
@@ -16,30 +13,28 @@ class SpecSplitter {
final ComponentId namespace;
SpecSplitter(String spec) {
- List<String> idAndNamespace = splitFirst(spec, '@');
- List<String> nameAndVersion = splitFirst(idAndNamespace.get(0), ':');
-
- name = nameAndVersion.get(0);
- version = second(nameAndVersion);
- namespace = ComponentId.fromString(second(idAndNamespace));
- }
-
- private String second(List<String> components) {
- return components.size() == 2?
- components.get(1) :
- null;
- }
+ int indexOfAlpha = spec.indexOf('@');
+ String nameAndVersion = spec;
+ if (indexOfAlpha != -1) {
+ if (indexOfAlpha == spec.length() - 1) {
+ throw new RuntimeException("Expected characters after '@'");
+ }
+ nameAndVersion = spec.substring(0, indexOfAlpha);
+ namespace = ComponentId.fromString(spec.substring(indexOfAlpha + 1));
+ } else {
+ namespace = null;
+ }
- private static List<String> splitFirst(String string, char c) {
- int index = string.indexOf(c);
- if (index != -1) {
- if (index == string.length() - 1) {
- throw new RuntimeException("Expected characters after '" + c + "'");
+ int indexOfColon = nameAndVersion.indexOf(':');
+ if (indexOfColon != -1) {
+ if (indexOfColon == nameAndVersion.length() - 1) {
+ throw new RuntimeException("Expected characters after ':'");
}
- return Arrays.asList(string.substring(0, index),
- string.substring(index + 1));
+ name = nameAndVersion.substring(0, indexOfColon);
+ version = nameAndVersion.substring(indexOfColon+1);
} else {
- return Arrays.asList(string, null);
+ name = nameAndVersion;
+ version = null;
}
}
diff --git a/component/src/main/java/com/yahoo/component/Version.java b/component/src/main/java/com/yahoo/component/Version.java
index e0ed3f03f7e..7c98af55be3 100644
--- a/component/src/main/java/com/yahoo/component/Version.java
+++ b/component/src/main/java/com/yahoo/component/Version.java
@@ -193,11 +193,7 @@ public final class Version implements Comparable<Version> {
/** Returns new Version(versionString), or Version.emptyVersion if the input string is null or "" */
public static Version fromString(String versionString) {
- if (versionString == null) {
- return emptyVersion;
- } else {
- return new Version(versionString);
- }
+ return (versionString == null) ? emptyVersion :new Version(versionString);
}
/**
@@ -225,23 +221,11 @@ public final class Version implements Comparable<Version> {
private String toStringValue() {
StringBuilder b = new StringBuilder();
if (! qualifier.isEmpty()) {
- b.append(getMajor());
- b.append(".");
- b.append(getMinor());
- b.append(".");
- b.append(getMicro());
- b.append(".");
- b.append(qualifier);
+ b.append(getMajor()).append(".").append(getMinor()).append(".").append(getMicro()).append(".").append(qualifier);
} else if (getMicro() != 0) {
- b.append(getMajor());
- b.append(".");
- b.append(getMinor());
- b.append(".");
- b.append(getMicro());
+ b.append(getMajor()).append(".").append(getMinor()).append(".").append(getMicro());
} else if (getMinor() != 0) {
- b.append(getMajor());
- b.append(".");
- b.append(getMinor());
+ b.append(getMajor()).append(".").append(getMinor());
} else if (getMajor() != 0) {
b.append(getMajor());
}
@@ -256,11 +240,7 @@ public final class Version implements Comparable<Version> {
*/
public String toFullString() {
StringBuilder b = new StringBuilder();
- b.append(getMajor());
- b.append(".");
- b.append(getMinor());
- b.append(".");
- b.append(getMicro());
+ b.append(getMajor()).append(".").append(getMinor()).append(".").append(getMicro());
if (! qualifier.isEmpty()) {
b.append(".");
@@ -382,11 +362,9 @@ public final class Version implements Comparable<Version> {
/** Creates a version specification that only matches this version */
public VersionSpecification toSpecification() {
- if (this == emptyVersion)
- return VersionSpecification.emptyVersionSpecification;
- else {
- return new VersionSpecification(getMajor(), getMinor(), getMicro(), getQualifier());
- }
+ return (this == emptyVersion)
+ ? VersionSpecification.emptyVersionSpecification
+ : new VersionSpecification(getMajor(), getMinor(), getMicro(), getQualifier());
}
}