summaryrefslogtreecommitdiff
path: root/platform/util-rt/src/com/intellij/openapi
diff options
context:
space:
mode:
Diffstat (limited to 'platform/util-rt/src/com/intellij/openapi')
-rw-r--r--platform/util-rt/src/com/intellij/openapi/util/Condition.java5
-rw-r--r--platform/util-rt/src/com/intellij/openapi/util/Conditions.java12
-rw-r--r--platform/util-rt/src/com/intellij/openapi/util/text/StringUtilRt.java22
3 files changed, 37 insertions, 2 deletions
diff --git a/platform/util-rt/src/com/intellij/openapi/util/Condition.java b/platform/util-rt/src/com/intellij/openapi/util/Condition.java
index 7eb9c1c7a8f6..d75ec46aa8cc 100644
--- a/platform/util-rt/src/com/intellij/openapi/util/Condition.java
+++ b/platform/util-rt/src/com/intellij/openapi/util/Condition.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2010 JetBrains s.r.o.
+ * Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,6 +28,7 @@ public interface Condition<T> {
boolean value(T t);
Condition<Object> NOT_NULL = new Condition<Object>() {
+ @Override
public boolean value(final Object object) {
return object != null;
}
@@ -43,6 +44,7 @@ public interface Condition<T> {
* @see com.intellij.openapi.util.Conditions#alwaysTrue()
*/
Condition TRUE = new Condition() {
+ @Override
public boolean value(final Object object) {
return true;
}
@@ -57,6 +59,7 @@ public interface Condition<T> {
* @see com.intellij.openapi.util.Conditions#alwaysFalse()
*/
Condition FALSE = new Condition() {
+ @Override
public boolean value(final Object object) {
return false;
}
diff --git a/platform/util-rt/src/com/intellij/openapi/util/Conditions.java b/platform/util-rt/src/com/intellij/openapi/util/Conditions.java
index 48bb06ad8b8e..ef3c0d2acbf6 100644
--- a/platform/util-rt/src/com/intellij/openapi/util/Conditions.java
+++ b/platform/util-rt/src/com/intellij/openapi/util/Conditions.java
@@ -18,6 +18,7 @@ package com.intellij.openapi.util;
import com.intellij.reference.SoftReference;
import com.intellij.util.ArrayUtilRt;
+import org.jetbrains.annotations.NotNull;
import java.util.HashMap;
@@ -27,15 +28,18 @@ import java.util.HashMap;
public class Conditions {
private Conditions() {}
+ @NotNull
public static <T> Condition<T> alwaysTrue() {
return (Condition<T>)TRUE;
}
+ @NotNull
public static <T> Condition<T> alwaysFalse() {
return (Condition<T>)FALSE;
}
public static <T> Condition<T> instanceOf(final Class<?> clazz) {
return new Condition<T>() {
+ @Override
public boolean value(T t) {
return clazz.isInstance(t);
}
@@ -44,6 +48,7 @@ public class Conditions {
public static <T> Condition<T> is(final T option) {
return new Condition<T>() {
+ @Override
public boolean value(T t) {
return Comparing.equal(t, option);
}
@@ -52,6 +57,7 @@ public class Conditions {
public static <T> Condition<T> oneOf(final T... options) {
return new Condition<T>() {
+ @Override
public boolean value(T t) {
return ArrayUtilRt.find(options, t) >= 0;
}
@@ -78,6 +84,7 @@ public class Conditions {
myCondition = condition;
}
+ @Override
public boolean value(T value) {
return !myCondition.value(value);
}
@@ -91,6 +98,7 @@ public class Conditions {
this.t2 = t2;
}
+ @Override
public boolean value(final T object) {
return t1.value(object) && t2.value(object);
}
@@ -104,17 +112,20 @@ public class Conditions {
this.t2 = t2;
}
+ @Override
public boolean value(final T object) {
return t1.value(object) || t2.value(object);
}
}
public static Condition<Object> TRUE = new Condition<Object>() {
+ @Override
public boolean value(final Object object) {
return true;
}
};
public static Condition<Object> FALSE = new Condition<Object>() {
+ @Override
public boolean value(final Object object) {
return false;
}
@@ -128,6 +139,7 @@ public class Conditions {
myCondition = condition;
}
+ @Override
public final boolean value(T object) {
final int key = object.hashCode();
final Pair<SoftReference<T>, Boolean> entry = myCache.get(key);
diff --git a/platform/util-rt/src/com/intellij/openapi/util/text/StringUtilRt.java b/platform/util-rt/src/com/intellij/openapi/util/text/StringUtilRt.java
index 8b6e353fdbea..cc667ba8a80d 100644
--- a/platform/util-rt/src/com/intellij/openapi/util/text/StringUtilRt.java
+++ b/platform/util-rt/src/com/intellij/openapi/util/text/StringUtilRt.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
*/
package com.intellij.openapi.util.text;
+import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -27,11 +28,13 @@ import org.jetbrains.annotations.Nullable;
*/
@SuppressWarnings({"UtilityClassWithoutPrivateConstructor"})
public class StringUtilRt {
+ @Contract(pure = true)
public static boolean charsEqualIgnoreCase(char a, char b) {
return a == b || toUpperCase(a) == toUpperCase(b) || toLowerCase(a) == toLowerCase(b);
}
@NotNull
+ @Contract(pure = true)
public static String toUpperCase(@NotNull String s) {
StringBuilder answer = null;
@@ -51,6 +54,7 @@ public class StringUtilRt {
return answer == null ? s : answer.toString();
}
+ @Contract(pure = true)
public static char toUpperCase(char a) {
if (a < 'a') {
return a;
@@ -61,6 +65,7 @@ public class StringUtilRt {
return Character.toUpperCase(a);
}
+ @Contract(pure = true)
public static char toLowerCase(char a) {
if (a < 'A' || a >= 'a' && a <= 'z') {
return a;
@@ -77,21 +82,25 @@ public class StringUtilRt {
* Converts line separators to <code>"\n"</code>
*/
@NotNull
+ @Contract(pure = true)
public static String convertLineSeparators(@NotNull String text) {
return convertLineSeparators(text, false);
}
@NotNull
+ @Contract(pure = true)
public static String convertLineSeparators(@NotNull String text, boolean keepCarriageReturn) {
return convertLineSeparators(text, "\n", null, keepCarriageReturn);
}
@NotNull
+ @Contract(pure = true)
public static String convertLineSeparators(@NotNull String text, @NotNull String newSeparator) {
return convertLineSeparators(text, newSeparator, null);
}
@NotNull
+ @Contract(pure = true)
public static CharSequence convertLineSeparators(@NotNull CharSequence text, @NotNull String newSeparator) {
return unifyLineSeparators(text, newSeparator, null, false);
}
@@ -110,6 +119,7 @@ public class StringUtilRt {
}
@NotNull
+ @Contract(pure = true)
public static CharSequence unifyLineSeparators(@NotNull CharSequence text) {
return unifyLineSeparators(text, "\n", null, false);
}
@@ -189,6 +199,7 @@ public class StringUtilRt {
}
}
+ @Contract(pure = true)
public static int parseInt(final String string, final int defaultValue) {
try {
return Integer.parseInt(string);
@@ -198,6 +209,7 @@ public class StringUtilRt {
}
}
+ @Contract(pure = true)
public static double parseDouble(final String string, final double defaultValue) {
try {
return Double.parseDouble(string);
@@ -207,6 +219,7 @@ public class StringUtilRt {
}
}
+ @Contract(pure = true)
public static boolean parseBoolean(final String string, final boolean defaultValue) {
try {
return Boolean.parseBoolean(string);
@@ -217,16 +230,19 @@ public class StringUtilRt {
}
@NotNull
+ @Contract(pure = true)
public static String getShortName(@NotNull Class aClass) {
return getShortName(aClass.getName());
}
@NotNull
+ @Contract(pure = true)
public static String getShortName(@NotNull String fqName) {
return getShortName(fqName, '.');
}
@NotNull
+ @Contract(pure = true)
public static String getShortName(@NotNull String fqName, char separator) {
int lastPointIdx = fqName.lastIndexOf(separator);
if (lastPointIdx >= 0) {
@@ -235,16 +251,19 @@ public class StringUtilRt {
return fqName;
}
+ @Contract(pure = true)
public static boolean endsWithChar(@Nullable CharSequence s, char suffix) {
return s != null && s.length() != 0 && s.charAt(s.length() - 1) == suffix;
}
+ @Contract(pure = true)
public static boolean startsWithIgnoreCase(@NonNls @NotNull String str, @NonNls @NotNull String prefix) {
final int stringLength = str.length();
final int prefixLength = prefix.length();
return stringLength >= prefixLength && str.regionMatches(true, 0, prefix, 0, prefixLength);
}
+ @Contract(pure = true)
public static boolean endsWithIgnoreCase(@NonNls @NotNull CharSequence text, @NonNls @NotNull CharSequence suffix) {
int l1 = text.length();
int l2 = suffix.length();
@@ -269,6 +288,7 @@ public class StringUtilRt {
* @return index of the last occurrence of the given symbol at the target sub-sequence of the given text if any;
* <code>-1</code> otherwise
*/
+ @Contract(pure = true)
public static int lastIndexOf(@NotNull CharSequence s, char c, int start, int end) {
for (int i = end - 1; i >= start; i--) {
if (s.charAt(i) == c) return i;