From caf144ed067c002fed6a250950d2a7c40cf00cc5 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 2 Mar 2023 01:25:36 +0100 Subject: [PATCH] Remove most of io.atomix.utils.misc There is only one class used from this package, remove all the others. Change-Id: I0a5d751ec2ef9cdf07694a4a640fe1ca25bf1afb JIRA: CONTROLLER-2071 Signed-off-by: Robert Varga --- .../main/java/io/atomix/utils/misc/Match.java | 164 ------------------ .../io/atomix/utils/misc/StringUtils.java | 48 ----- .../atomix/utils/misc/TimestampPrinter.java | 50 ------ .../test/java/io/atomix/utils/MatchTest.java | 118 ------------- .../io/atomix/utils/TimestampPrinterTest.java | 34 ---- .../io/atomix/utils/misc/StringUtilsTest.java | 38 ---- 6 files changed, 452 deletions(-) delete mode 100644 third-party/atomix/utils/src/main/java/io/atomix/utils/misc/Match.java delete mode 100644 third-party/atomix/utils/src/main/java/io/atomix/utils/misc/StringUtils.java delete mode 100644 third-party/atomix/utils/src/main/java/io/atomix/utils/misc/TimestampPrinter.java delete mode 100644 third-party/atomix/utils/src/test/java/io/atomix/utils/MatchTest.java delete mode 100644 third-party/atomix/utils/src/test/java/io/atomix/utils/TimestampPrinterTest.java delete mode 100644 third-party/atomix/utils/src/test/java/io/atomix/utils/misc/StringUtilsTest.java diff --git a/third-party/atomix/utils/src/main/java/io/atomix/utils/misc/Match.java b/third-party/atomix/utils/src/main/java/io/atomix/utils/misc/Match.java deleted file mode 100644 index b46b0cf02b..0000000000 --- a/third-party/atomix/utils/src/main/java/io/atomix/utils/misc/Match.java +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Copyright 2016-present Open Networking Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.atomix.utils.misc; - -import java.util.Arrays; -import java.util.Objects; -import java.util.function.Function; - -import static com.google.common.base.MoreObjects.toStringHelper; - -/** - * Utility class for checking matching values. - * - * @param type of value - */ -public final class Match { - - public static final Match ANY = new Match<>(); - public static final Match NULL = new Match<>(null, false); - public static final Match NOT_NULL = new Match<>(null, true); - - private final boolean matchAny; - private final T value; - private final boolean negation; - - /** - * Returns a Match that matches any value including null. - * - * @param match type - * @return new instance - */ - public static Match any() { - return ANY; - } - - /** - * Returns a Match that matches null values. - * - * @param match type - * @return new instance - */ - public static Match ifNull() { - return NULL; - } - - /** - * Returns a Match that matches all non-null values. - * - * @param match type - * @return new instance - */ - public static Match ifNotNull() { - return NOT_NULL; - } - - /** - * Returns a Match that only matches the specified value. - * - * @param value value to match - * @param match type - * @return new instance - */ - public static Match ifValue(T value) { - return new Match<>(value, false); - } - - /** - * Returns a Match that matches any value except the specified value. - * - * @param value value to not match - * @param match type - * @return new instance - */ - public static Match ifNotValue(T value) { - return new Match<>(value, true); - } - - private Match() { - matchAny = true; - negation = false; - value = null; - } - - private Match(T value, boolean negation) { - matchAny = false; - this.value = value; - this.negation = negation; - } - - /** - * Maps this instance to a Match of another type. - * - * @param mapper transformation function - * @param new match type - * @return new instance - */ - public Match map(Function mapper) { - if (matchAny) { - return any(); - } else if (value == null) { - return negation ? ifNotNull() : ifNull(); - } else { - return negation ? ifNotValue(mapper.apply(value)) : ifValue(mapper.apply(value)); - } - } - - /** - * Checks if this instance matches specified value. - * - * @param other other value - * @return true if matches; false otherwise - */ - public boolean matches(T other) { - if (matchAny) { - return true; - } else if (other == null) { - return negation ? value != null : value == null; - } else { - if (value instanceof byte[]) { - boolean equal = Arrays.equals((byte[]) value, (byte[]) other); - return negation ? !equal : equal; - } - return negation ? !Objects.equals(value, other) : Objects.equals(value, other); - } - } - - @Override - public int hashCode() { - return Objects.hash(matchAny, value, negation); - } - - @Override - public boolean equals(Object other) { - if (!(other instanceof Match)) { - return false; - } - Match that = (Match) other; - return this.matchAny == that.matchAny - && Objects.equals(this.value, that.value) - && this.negation == that.negation; - } - - @Override - public String toString() { - return toStringHelper(this) - .add("matchAny", matchAny) - .add("negation", negation) - .add("value", value) - .toString(); - } -} diff --git a/third-party/atomix/utils/src/main/java/io/atomix/utils/misc/StringUtils.java b/third-party/atomix/utils/src/main/java/io/atomix/utils/misc/StringUtils.java deleted file mode 100644 index 5390b6ca9c..0000000000 --- a/third-party/atomix/utils/src/main/java/io/atomix/utils/misc/StringUtils.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2019-present Open Networking Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.atomix.utils.misc; - -import java.util.ArrayList; -import java.util.List; - -/** - * Collection of various helper methods to manipulate strings. - */ -public final class StringUtils { - - private StringUtils() { - } - - /** - * Splits the input string with the given regex and filters empty strings. - * - * @param input the string to split. - * @return the array of strings computed by splitting this string - */ - public static String[] split(String input, String regex) { - if (input == null) { - return null; - } - String[] arr = input.split(regex); - List results = new ArrayList<>(arr.length); - for (String a : arr) { - if (!a.trim().isEmpty()) { - results.add(a); - } - } - return results.toArray(new String[0]); - } -} diff --git a/third-party/atomix/utils/src/main/java/io/atomix/utils/misc/TimestampPrinter.java b/third-party/atomix/utils/src/main/java/io/atomix/utils/misc/TimestampPrinter.java deleted file mode 100644 index 0e4dcea9a7..0000000000 --- a/third-party/atomix/utils/src/main/java/io/atomix/utils/misc/TimestampPrinter.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2017-present Open Networking Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.atomix.utils.misc; - -import java.time.Instant; -import java.time.LocalDateTime; -import java.time.ZoneId; -import java.time.format.DateTimeFormatter; - -/** - * Timestamp printer. - */ -public class TimestampPrinter { - - /** - * Returns a new timestamp printer. - * - * @param timestamp the timestamp to print - * @return the timestamp printer - */ - public static TimestampPrinter of(long timestamp) { - return new TimestampPrinter(timestamp); - } - - private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss,SSS"); - - private final long timestamp; - - public TimestampPrinter(long timestamp) { - this.timestamp = timestamp; - } - - @Override - public String toString() { - return FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamp), ZoneId.systemDefault())); - } -} diff --git a/third-party/atomix/utils/src/test/java/io/atomix/utils/MatchTest.java b/third-party/atomix/utils/src/test/java/io/atomix/utils/MatchTest.java deleted file mode 100644 index 033b75a986..0000000000 --- a/third-party/atomix/utils/src/test/java/io/atomix/utils/MatchTest.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright 2016-present Open Networking Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.atomix.utils; - -import com.google.common.base.Objects; -import io.atomix.utils.misc.Match; -import org.junit.Test; - -import static junit.framework.TestCase.assertEquals; -import static junit.framework.TestCase.assertFalse; -import static junit.framework.TestCase.assertTrue; - -/** - * Unit tests for Match. - */ -public class MatchTest { - - @Test - public void testMatches() { - Match m1 = Match.any(); - assertTrue(m1.matches(null)); - assertTrue(m1.matches("foo")); - assertTrue(m1.matches("bar")); - - Match m2 = Match.ifNull(); - assertTrue(m2.matches(null)); - assertFalse(m2.matches("foo")); - - Match m3 = Match.ifValue("foo"); - assertFalse(m3.matches(null)); - assertFalse(m3.matches("bar")); - assertTrue(m3.matches("foo")); - - Match m4 = Match.ifValue(new byte[8]); - assertTrue(m4.matches(new byte[8])); - assertFalse(m4.matches(new byte[7])); - } - - @Test - public void testEquals() { - Match m1 = Match.any(); - Match m2 = Match.any(); - Match m3 = Match.ifNull(); - Match m4 = Match.ifValue("bar"); - assertEquals(m1, m2); - assertFalse(Objects.equal(m1, m3)); - assertFalse(Objects.equal(m3, m4)); - Object o = new Object(); - assertFalse(Objects.equal(m1, o)); - } - - @Test - public void testMap() { - Match m1 = Match.ifNull(); - assertEquals(m1.map(s -> "bar"), Match.ifNull()); - Match m2 = Match.ifValue("foo"); - Match m3 = m2.map(s -> "bar"); - assertTrue(m3.matches("bar")); - } - - @Test - public void testIfNotNull() { - Match m = Match.ifNotNull(); - assertFalse(m.matches(null)); - assertTrue(m.matches("foo")); - } - - @Test - public void testIfNotValue() { - Match m1 = Match.ifNotValue(null); - Match m2 = Match.ifNotValue("foo"); - assertFalse(m1.matches(null)); - assertFalse(m2.matches("foo")); - } - - @Test - public void testToString() { - Match m1 = Match.any(); - Match m2 = Match.any(); - Match m3 = Match.ifValue("foo"); - Match m4 = Match.ifValue("foo"); - Match m5 = Match.ifNotValue("foo"); - - String note = "Results of toString() should be consistent -- "; - - assertTrue(note, m1.toString().equals(m2.toString())); - assertTrue(note, m3.toString().equals(m4.toString())); - assertFalse(note, m4.toString().equals(m5.toString())); - } - - @Test - public void testHashCode() { - Match m1 = Match.ifValue("foo"); - Match m2 = Match.ifNotValue("foo"); - Match m3 = Match.ifValue("foo"); - Match m4 = Match.ifNotNull(); - Match m5 = Match.ifNull(); - - assertTrue(m1.hashCode() == m3.hashCode()); - assertFalse(m2.hashCode() == m1.hashCode()); - assertFalse(m4.hashCode() == m5.hashCode()); - - } - -} diff --git a/third-party/atomix/utils/src/test/java/io/atomix/utils/TimestampPrinterTest.java b/third-party/atomix/utils/src/test/java/io/atomix/utils/TimestampPrinterTest.java deleted file mode 100644 index 49f287562f..0000000000 --- a/third-party/atomix/utils/src/test/java/io/atomix/utils/TimestampPrinterTest.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2017-present Open Networking Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.atomix.utils; - -import io.atomix.utils.misc.TimestampPrinter; -import org.junit.Ignore; -import org.junit.Test; - -import static org.junit.Assert.assertEquals; - -/** - * Timestamp printer test. - */ -public class TimestampPrinterTest { - @Test - @Ignore // Timestamp is environment specific - public void testTimestampPrinter() throws Exception { - TimestampPrinter printer = TimestampPrinter.of(1); - assertEquals("1969-12-31 04:00:00,001", printer.toString()); - } -} diff --git a/third-party/atomix/utils/src/test/java/io/atomix/utils/misc/StringUtilsTest.java b/third-party/atomix/utils/src/test/java/io/atomix/utils/misc/StringUtilsTest.java deleted file mode 100644 index ce43e55836..0000000000 --- a/third-party/atomix/utils/src/test/java/io/atomix/utils/misc/StringUtilsTest.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2019-present Open Networking Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.atomix.utils.misc; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; - -public class StringUtilsTest { - - @Test - public void testNull() { - assertNull(StringUtils.split(null, ",")); - } - - @Test - public void testFilter() { - String[] result = StringUtils.split("1, ,,", ","); - assertNotNull(result); - assertEquals(1, result.length); - assertEquals("1", result[0]); - } -} -- 2.36.6