Class Util
- java.lang.Object
-
- org.apache.calcite.util.Util
-
public class Util extends java.lang.Object
Miscellaneous utility functions.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
Util.FilteringIterator<T>
Iterator that applies a predicate to each element.static class
Util.FoundOne
Exception used to interrupt a tree walk of any kind.static class
Util.OverFinder
Visitor which looks for an OVER clause inside a tree ofSqlNode
objects.private static class
Util.RandomAccessTransformingList<F,T>
Extension toUtil.TransformingList
that implementsRandomAccess
.private static class
Util.TransformingList<F,T>
List that returns the same number of elements as a backing list, applying a transformation function to each one.
-
Field Summary
Fields Modifier and Type Field Description private static java.nio.charset.Charset
DEFAULT_CHARSET
private static com.google.common.cache.LoadingCache<java.lang.Class,java.util.Map<java.lang.String,java.lang.Enum>>
ENUM_CONSTANTS
Maps classes to the map of their enum values.static java.lang.String
FILE_SEPARATOR
System-dependent file separator, for example, "/" or "\."static java.lang.String
FILE_TIMESTAMP_FORMAT
Datetime format string for generating a timestamp string to be used as part of a filename.private static java.util.regex.Pattern
JAVA_ID_PATTERN
Regular expression for a valid java identifier which contains no underscores and can therefore be returned intact bytoJavaId(java.lang.String, int)
.static java.lang.String
LINE_SEPARATOR
System-dependent newline character.
-
Constructor Summary
Constructors Modifier Constructor Description private
Util()
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description private static void
appendPosixDaylightTransition(java.util.TimeZone tz, java.lang.StringBuilder buf, int mode, int day, int month, int dayOfWeek, int time, int timeMode, boolean verbose, boolean isEnd)
Writes a daylight savings time transition to a POSIX timezone description.private static void
appendPosixTime(java.lang.StringBuilder buf, int millis)
Given a time expressed in milliseconds, append the time formatted as "hh[:mm[:ss]]".static <K,V>
java.util.Map<K,V>asIndexMap(java.util.Collection<V> values, com.google.common.base.Function<V,K> function)
Deprecated.static <K,V>
java.util.Map<K,V>asIndexMapJ(java.util.Collection<V> values, java.util.function.Function<V,K> function)
Returns a map that is a view onto a collection of values, using the provided function to convert a value to a key.static java.util.Calendar
calendar()
Creates aCalendar
in the UTC time zone and root locale.static java.util.Calendar
calendar(long millis)
Creates aCalendar
in the UTC time zone and root locale with a given time.static <E> java.lang.Iterable<E>
cast(java.lang.Iterable<? super E> iterable, java.lang.Class<E> clazz)
Converts anIterable
whose members are automatically down-cast to a given type.static <E> java.util.Iterator<E>
cast(java.util.Iterator<?> iter, java.lang.Class<E> clazz)
Converts a iterator whose members are automatically down-cast to a given type.static <E> java.util.List<E>
cast(java.util.List<? super E> list, java.lang.Class<E> clazz)
Converts a list whose members are automatically down-cast to a given type.static <T> java.lang.String
commaList(java.util.List<T> list)
Converts a list of a string, with commas between elements.static boolean
contains(java.lang.String[] a, int length, java.lang.String s)
Returns whether an array of strings contains a given string among the firstlength
entries.static void
debugCode(java.io.PrintStream out, java.lang.String code)
Prints the given code with line numbering.static <T> T
deprecated(T argument, boolean fail)
Deprecated.If a piece of code calls this method, it indicates that the code needs to be cleaned up.private static java.lang.String
digits3(long x, int z)
static void
discard(boolean b)
Does nothing with its argument.static void
discard(double d)
Does nothing with its argument.static void
discard(int i)
Does nothing with its argument.static void
discard(java.lang.Object o)
Does nothing with its argument.static <E> java.util.List<E>
distinctList(java.lang.Iterable<E> keys)
Converts an iterable into a list with unique elements.static <E> java.util.List<E>
distinctList(java.util.List<E> list)
Converts a list into a list with unique elements.static <T extends java.lang.Enum<T>>
java.util.Map<java.lang.String,T>enumConstants(java.lang.Class<T> clazz)
Creates a map of the values of an enumeration by name.static <T extends java.lang.Enum<T>>
TenumVal(java.lang.Class<T> clazz, java.lang.String name)
Returns the value of an enumeration with a particular name.static <T extends java.lang.Enum<T>>
TenumVal(T default_, java.lang.String name)
Returns the value of an enumeration with a particular or default value if not found.static <T> boolean
equalShallow(java.util.List<? extends T> list0, java.util.List<? extends T> list1)
Returns whether two lists are equal to each other using shallow comparisons.static <E> java.lang.Iterable<E>
filter(java.lang.Iterable<?> iterable, java.lang.Class<E> includeFilter)
Makes a collection of untyped elements appear as a list of strictly typed elements, by filtering out those which are not of the correct type.static <E> java.lang.Iterable<E>
filter(java.lang.Iterable<E> iterable, java.util.function.Predicate<E> predicate)
Filters an iterable.static <E> java.util.Collection<E>
filter(java.util.Collection<?> collection, java.lang.Class<E> includeFilter)
static <E> java.util.Iterator<E>
filter(java.util.Iterator<E> iterator, java.util.function.Predicate<E> predicate)
Filters an iterator.static <E> java.util.List<E>
filter(java.util.List<?> list, java.lang.Class<E> includeFilter)
Returns a subset of a list containing only elements of a given type.static int
findMatch(java.util.List<java.lang.String> strings, java.lang.String seek, boolean caseSensitive)
Looks for a string within a list of strings, using a given case-sensitivity policy, and returns the position at which the first match is found, or -1 if there are no matches.static boolean
first(java.lang.Boolean v0, boolean v1)
Unboxes aBoolean
value, using a given default value if it is null.static byte
first(java.lang.Byte v0, byte v1)
Unboxes aByte
value, using a given default value if it is null.static char
first(java.lang.Character v0, char v1)
Unboxes aCharacter
value, using a given default value if it is null.static double
first(java.lang.Double v0, double v1)
Unboxes aDouble
value, using a given default value if it is null.static float
first(java.lang.Float v0, float v1)
Unboxes aFloat
value, using a given default value if it is null.static int
first(java.lang.Integer v0, int v1)
Unboxes aInteger
value, using a given default value if it is null.static long
first(java.lang.Long v0, long v1)
Unboxes aLong
value, using a given default value if it is null.static short
first(java.lang.Short v0, short v1)
Unboxes aShort
value, using a given default value if it is null.static <T> T
first(T v0, T v1)
Returns the first value if it is not null, otherwise the second value.static <E> int
firstDuplicate(java.util.List<E> list)
Returns the ordinal of the first element in the list which is equal to a previous element in the list.static boolean
getBooleanProperty(java.lang.String property)
Returns the value of a system property as a boolean.static boolean
getBooleanProperty(java.lang.String property, boolean defaultValue)
Returns the value of a system property as a boolean, returning a given default value if the property is not specified.static java.nio.charset.Charset
getDefaultCharset()
Returns theCharset
object representing the value ofSaffronProperties.defaultCharset()
static java.lang.String
getFileTimestamp()
Deprecated.static java.lang.String
getMessages(java.lang.Throwable t)
Deprecated.static java.lang.String
getStackTrace(java.lang.Throwable t)
Deprecated.UseThrowables.getStackTraceAsString(Throwable)
static int
hash(int i, int j)
Deprecated.UseObjects.hash(Object...)
static int
hash(int h, java.lang.Object o)
Deprecated.UseObjects.hash(Object...)
static int
hashArray(int h, java.lang.Object[] a)
Deprecated.UseObjects.hash(Object...)
static int
hashCode(double v)
Deprecated.static java.lang.String
human(double d)
Converts a number into human-readable form, with 3 digits and a "K", "M" or "G" multiplier for thousands, millions or billions.static <E> java.util.List<java.util.List<E>>
immutableCopy(java.lang.Iterable<? extends java.lang.Iterable<E>> lists)
Returns a copy of a list of lists, making the component lists immutable if they are not already.static <E> boolean
intersects(java.util.Collection<E> c0, java.util.Collection<E> c1)
Returns whether two collections have any elements in common.static <E> boolean
isDistinct(java.util.List<E> list)
Returns whether the elements oflist
are distinct.static boolean
isNullOrEmpty(java.lang.String s)
static boolean
isSingleValue(SqlCall call)
Does nothing with its argument.static boolean
isValidJavaIdentifier(java.lang.String s)
Returns true when input string is a valid Java identifier.static <E> E
last(java.util.List<E> list)
Returns the last element of a list.static <E> java.util.List<E>
last(java.util.List<E> list, int n)
Returns the lastn
elements of a list.static java.lang.String
lines(java.lang.Iterable<java.lang.String> strings)
Converts a list of strings to a string separated by newlines.static java.lang.String
listToString(java.util.List<java.lang.String> list)
Converts ["ab", "c"] to "ab"."c".static <K,V>
java.util.Map<K,V>mapOf(K key, V value, java.lang.Object... keyValues)
Returns a hashmap with given contents.static boolean
matches(boolean caseSensitive, java.lang.String s0, java.lang.String s1)
Returns whether a name matches another according to a given case-sensitivity policy.static <T> java.util.Set<T>
minus(java.util.Set<T> set1, java.util.Set<T> set2)
Returns a set of the elements which are inset1
but not inset2
, without modifying either.static java.lang.RuntimeException
needToImplement(java.lang.Object o)
Returns aRuntimeException
indicating that a particular feature has not been implemented, but should be.static java.lang.Error
newInternal()
Deprecated.Throw newAssertionError
static java.lang.Error
newInternal(java.lang.String s)
Deprecated.Throw newAssertionError
static java.lang.Error
newInternal(java.lang.Throwable e)
Deprecated.Throw newRuntimeException
if checked; throw raw exception if unchecked orError
static java.lang.Error
newInternal(java.lang.Throwable e, java.lang.String s)
Deprecated.Throw newAssertionError
if applicable; orRuntimeException
if e is checked; or raw exception if e is unchecked orError
.static double
nLogN(double d)
Computesnlogn(n)
using the natural logarithm (orn
ifn <
, so the result is never negative.Math.E
static <T> java.lang.Iterable<T>
orEmpty(java.lang.Iterable<T> v0)
static <E> java.util.List<Pair<E,E>>
pairs(java.util.List<E> list)
Given a list with N elements [e0, e1, ..., eN-1] (where N is even), returns a list of the N / 2 elements [ (e0, e1), (e2, e3), ...static java.util.Locale
parseLocale(java.lang.String localeString)
Parses a locale string.static void
permAssert(boolean b, java.lang.String description)
Deprecated.UsePreconditions.checkArgument(boolean)
static void
post(boolean b, java.lang.String description)
Deprecated.UsePreconditions.checkArgument(boolean)
orObjects.requireNonNull(Object)
static void
pre(boolean b, java.lang.String description)
Deprecated.UsePreconditions.checkArgument(boolean)
orObjects.requireNonNull(Object)
static void
print(java.io.PrintWriter pw, java.lang.Object o)
Prints an object using reflection.static void
print(java.io.PrintWriter pw, java.lang.Object o, int indent)
static void
printJavaString(java.io.PrintWriter pw, java.lang.String s, boolean nullMeansNull)
Prints a string, enclosing in double quotes (") and escaping if necessary.static void
println(java.io.PrintWriter pw, java.lang.Object o)
static java.io.PrintWriter
printWriter(java.io.File file)
Creates aPrintWriter
to a given file using UTF-8 character set.static java.io.PrintWriter
printWriter(java.io.OutputStream out)
Creates aPrintWriter
to a given output stream using UTF-8 character set.static <E> java.util.List<E>
quotientList(java.util.List<E> list, int n, int k)
Creates a list that returns everyn
th element of a list, starting at elementk
.static java.util.List<java.lang.Integer>
range(int end)
static java.util.List<java.lang.Integer>
range(int start, int end)
static java.lang.String
readAllAsString(java.io.Reader reader)
Deprecated.static java.io.BufferedReader
reader(java.io.File file)
Creates aBufferedReader
to read a given file using UTF-8 character set.static java.io.BufferedReader
reader(java.io.InputStream in)
Creates aBufferedReader
to a given input stream using UTF-8 character set.static java.lang.String
replace(java.lang.String s, java.lang.String find, java.lang.String replace)
Replaces every occurrence offind
ins
withreplace
.static java.lang.String
rpad(java.lang.String s, int len)
Deprecated.UseSpaces.padRight(String, int)
static java.lang.String
rtrim(java.lang.String s)
Deprecated.static <T> java.lang.String
sepList(java.util.List<T> list, java.lang.String sep)
Converts a list of a string, with a given separator between elements.static <E> java.util.List<E>
skip(java.util.List<E> list)
Returns all but the first element of a list.static <E> java.util.List<E>
skip(java.util.List<E> list, int fromIndex)
Returns all but the firstn
elements of a list.static <E> java.util.List<E>
skipLast(java.util.List<E> list)
Returns every element of a list but its last element.static <E> java.util.List<E>
skipLast(java.util.List<E> list, int n)
Returns every element of a list but its lastn
elements.static void
squelchConnection(java.sql.Connection connection)
Deprecated.static void
squelchJar(java.util.jar.JarFile jar)
Deprecated.static void
squelchReader(java.io.Reader reader)
Deprecated.static void
squelchStmt(java.sql.Statement stmt)
Deprecated.static void
squelchStream(java.io.InputStream stream)
Deprecated.static void
squelchStream(java.io.OutputStream stream)
Deprecated.static void
squelchWriter(java.io.Writer writer)
Deprecated.static <E> boolean
startsWith(java.util.List<E> list0, java.util.List<E> list1)
Returns whether one list is a prefix of another.static java.util.List<java.lang.String>
stringToList(java.lang.String s)
static java.lang.String
stripDoubleQuotes(java.lang.String value)
Converts double-quoted Java strings to their contents.static void
swallow(java.lang.Throwable e, org.slf4j.Logger logger)
Records that an exception has been caught but will not be re-thrown.static void
throwIfUnchecked(java.lang.Throwable throwable)
AsThrowables
.throwIfUnchecked(Throwable)
, which was introduced in Guava 20, but we don't require Guava version 20 yet.static <T> java.util.stream.Collector<T,com.google.common.collect.ImmutableList.Builder<T>,com.google.common.collect.ImmutableList<T>>
toImmutableList()
Returns aCollector
that accumulates the input elements into a GuavaImmutableList
via aImmutableList.Builder
.static java.lang.String
toJavaId(java.lang.String s, int ordinal)
Converts an arbitrary string into a string suitable for use as a Java identifier.static java.lang.Iterable<java.lang.String>
tokenize(java.lang.String s, java.lang.String delim)
Converts a string into tokens.static java.lang.String
toLinux(java.lang.String s)
static <T> java.util.List<T>
toList(java.util.Iterator<T> iter)
Deprecated.static java.util.Map<java.lang.String,java.lang.String>
toMap(java.util.Properties properties)
Converts aProperties
object to a
.Map
<String, String>static java.lang.String
toPosix(java.util.TimeZone tz, boolean verbose)
Converts a Java timezone to POSIX format, so that the boost C++ library can instantiate timezone objects.static java.lang.String
toScientificNotation(java.math.BigDecimal bd)
Formats aBigDecimal
value to a string in scientific notation For example
A value of 0.00001234 would be formated as1.234E-5
A value of 100000.00 would be formated as1.00E5
A value of 100 (scale zero) would be formated as1E2
static <T> java.lang.String
toString(java.lang.Iterable<T> iterable, java.lang.String start, java.lang.String sep, java.lang.String end)
Converts an iterable to a string.static java.net.URL
toURL(java.io.File file)
Deprecated.static <F,T>
java.util.List<T>transform(java.util.List<F> list, java.util.function.Function<F,T> function)
Transforms a list, applying a function to each element.static <E extends java.lang.Enum<E>>
java.lang.Errorunexpected(E value)
Returns an exception indicating that we didn't expect to find this enumeration here.
-
-
-
Field Detail
-
LINE_SEPARATOR
public static final java.lang.String LINE_SEPARATOR
System-dependent newline character.In general, you should not use this in expected results of tests. Expected results should be the expected result on Linux (or Mac OS) using '\n'. Apply
toLinux(String)
to Windows actual results, if necessary, to make them look like Linux actual.
-
FILE_SEPARATOR
public static final java.lang.String FILE_SEPARATOR
System-dependent file separator, for example, "/" or "\."
-
FILE_TIMESTAMP_FORMAT
public static final java.lang.String FILE_TIMESTAMP_FORMAT
Datetime format string for generating a timestamp string to be used as part of a filename. Conforms to SimpleDateFormat conventions.- See Also:
- Constant Field Values
-
JAVA_ID_PATTERN
private static final java.util.regex.Pattern JAVA_ID_PATTERN
Regular expression for a valid java identifier which contains no underscores and can therefore be returned intact bytoJavaId(java.lang.String, int)
.
-
DEFAULT_CHARSET
private static final java.nio.charset.Charset DEFAULT_CHARSET
-
ENUM_CONSTANTS
private static final com.google.common.cache.LoadingCache<java.lang.Class,java.util.Map<java.lang.String,java.lang.Enum>> ENUM_CONSTANTS
Maps classes to the map of their enum values. Uses a weak map so that classes are not prevented from being unloaded.
-
-
Method Detail
-
isSingleValue
public static boolean isSingleValue(SqlCall call)
Does nothing with its argument. Returns whether it is ensured that the call produces a single value- Parameters:
call
- the expression to evaluate- Returns:
- Whether it is ensured that the call produces a single value
-
discard
public static void discard(java.lang.Object o)
Does nothing with its argument. Call this method when you have a value you are not interested in, but you don't want the compiler to warn that you are not using it.
-
discard
public static void discard(int i)
Does nothing with its argument. Call this method when you have a value you are not interested in, but you don't want the compiler to warn that you are not using it.
-
discard
public static void discard(boolean b)
Does nothing with its argument. Call this method when you have a value you are not interested in, but you don't want the compiler to warn that you are not using it.
-
discard
public static void discard(double d)
Does nothing with its argument. Call this method when you have a value you are not interested in, but you don't want the compiler to warn that you are not using it.
-
swallow
public static void swallow(java.lang.Throwable e, org.slf4j.Logger logger)
Records that an exception has been caught but will not be re-thrown. If the tracer is not null, logs the exception to the tracer.- Parameters:
e
- Exceptionlogger
- If not null, logs exception to this logger
-
equalShallow
public static <T> boolean equalShallow(java.util.List<? extends T> list0, java.util.List<? extends T> list1)
Returns whether two lists are equal to each other using shallow comparisons.- Parameters:
list0
- First listlist1
- Second list- Returns:
- Whether lists are same length and all of their elements are
equal using
==
(may be null).
-
hash
@Deprecated public static int hash(int i, int j)
Deprecated.UseObjects.hash(Object...)
Combines two integers into a hash code.
-
hash
@Deprecated public static int hash(int h, java.lang.Object o)
Deprecated.UseObjects.hash(Object...)
Computes a hash code from an existing hash code and an object (which may be null).
-
hashArray
@Deprecated public static int hashArray(int h, java.lang.Object[] a)
Deprecated.UseObjects.hash(Object...)
Computes a hash code from an existing hash code and an array of objects (which may be null).
-
hashCode
@Deprecated public static int hashCode(double v)
Deprecated.Computes the hash code of adouble
value. Equivalent toDouble
.hashCode(double)
, but that method was only introduced in JDK 1.8.- Parameters:
v
- Value- Returns:
- Hash code
-
minus
public static <T> java.util.Set<T> minus(java.util.Set<T> set1, java.util.Set<T> set2)
Returns a set of the elements which are inset1
but not inset2
, without modifying either.
-
nLogN
public static double nLogN(double d)
Computesnlogn(n)
using the natural logarithm (orn
ifn <
, so the result is never negative.Math.E
-
print
public static void print(java.io.PrintWriter pw, java.lang.Object o)
Prints an object using reflection. We can handlenull
; arrays of objects and primitive values; for regular objects, we print all public fields.
-
print
public static void print(java.io.PrintWriter pw, java.lang.Object o, int indent)
-
printJavaString
public static void printJavaString(java.io.PrintWriter pw, java.lang.String s, boolean nullMeansNull)
Prints a string, enclosing in double quotes (") and escaping if necessary. For examples,printDoubleQuoted(w,"x\"y",false)
prints"x\"y"
.
-
println
public static void println(java.io.PrintWriter pw, java.lang.Object o)
-
toScientificNotation
public static java.lang.String toScientificNotation(java.math.BigDecimal bd)
Formats aBigDecimal
value to a string in scientific notation For example
- A value of 0.00001234 would be formated as
1.234E-5
- A value of 100000.00 would be formated as
1.00E5
- A value of 100 (scale zero) would be formated as
1E2
If
bd
has a precision higher than 20, this method will truncate the output string to have a precision of 20 (no rounding will be done, just a truncate). - A value of 0.00001234 would be formated as
-
replace
public static java.lang.String replace(java.lang.String s, java.lang.String find, java.lang.String replace)
Replaces every occurrence offind
ins
withreplace
.
-
toURL
@Deprecated public static java.net.URL toURL(java.io.File file) throws java.net.MalformedURLException
Deprecated.Creates a file-protocol URL for the given file.- Throws:
java.net.MalformedURLException
-
getFileTimestamp
@Deprecated public static java.lang.String getFileTimestamp()
Deprecated.Gets a timestamp string for use in file names. The generated timestamp string reflects the current time.
-
stripDoubleQuotes
public static java.lang.String stripDoubleQuotes(java.lang.String value)
Converts double-quoted Java strings to their contents. For example,"foo\"bar"
becomesfoo"bar
.
-
toJavaId
public static java.lang.String toJavaId(java.lang.String s, int ordinal)
Converts an arbitrary string into a string suitable for use as a Java identifier.The mapping is one-to-one (that is, distinct strings will produce distinct java identifiers). The mapping is also reversible, but the inverse mapping is not implemented.
A valid Java identifier must start with a Unicode letter, underscore, or dollar sign ($). The other characters, if any, can be a Unicode letter, underscore, dollar sign, or digit.
This method uses an algorithm similar to URL encoding. Valid characters are unchanged; invalid characters are converted to an underscore followed by the hex code of the character; and underscores are doubled.
Examples:
toJavaId("foo")
returns"foo"
toJavaId("foo bar")
returns"foo_20_bar"
toJavaId("foo_bar")
returns"foo__bar"
toJavaId("0bar")
returns"_40_bar"
(digits are illegal as a prefix)toJavaId("foo0bar")
returns"foo0bar"
-
isValidJavaIdentifier
public static boolean isValidJavaIdentifier(java.lang.String s)
Returns true when input string is a valid Java identifier.- Parameters:
s
- input string- Returns:
- true when input string is a valid Java identifier
-
toLinux
public static java.lang.String toLinux(java.lang.String s)
-
toList
@Deprecated public static <T> java.util.List<T> toList(java.util.Iterator<T> iter)
Deprecated.Materializes the results of aIterator
as aList
.- Parameters:
iter
- iterator to materialize- Returns:
- materialized list
-
isNullOrEmpty
public static boolean isNullOrEmpty(java.lang.String s)
- Returns:
- true if s==null or if s.length()==0
-
commaList
public static <T> java.lang.String commaList(java.util.List<T> list)
Converts a list of a string, with commas between elements.For example,
commaList(Arrays.asList({"a", "b"}))
returns "a, b".- Parameters:
list
- List- Returns:
- String representation of string
-
sepList
public static <T> java.lang.String sepList(java.util.List<T> list, java.lang.String sep)
Converts a list of a string, with a given separator between elements.
-
getDefaultCharset
public static java.nio.charset.Charset getDefaultCharset()
Returns theCharset
object representing the value ofSaffronProperties.defaultCharset()
- Throws:
java.nio.charset.IllegalCharsetNameException
- If the given charset name is illegaljava.nio.charset.UnsupportedCharsetException
- If no support for the named charset is available in this instance of the Java virtual machine
-
newInternal
@Deprecated public static java.lang.Error newInternal()
Deprecated.Throw newAssertionError
-
newInternal
@Deprecated public static java.lang.Error newInternal(java.lang.String s)
Deprecated.Throw newAssertionError
-
newInternal
@Deprecated public static java.lang.Error newInternal(java.lang.Throwable e)
Deprecated.Throw newRuntimeException
if checked; throw raw exception if unchecked orError
-
newInternal
public static java.lang.Error newInternal(java.lang.Throwable e, java.lang.String s)
Deprecated.Throw newAssertionError
if applicable; orRuntimeException
if e is checked; or raw exception if e is unchecked orError
.
-
throwIfUnchecked
public static void throwIfUnchecked(java.lang.Throwable throwable)
AsThrowables
.throwIfUnchecked(Throwable)
, which was introduced in Guava 20, but we don't require Guava version 20 yet.
-
getMessages
@Deprecated public static java.lang.String getMessages(java.lang.Throwable t)
Deprecated.Retrieves messages in a exception and writes them to a string. In the string returned, each message will appear on a different line.- Returns:
- a non-null string containing all messages of the exception
-
getStackTrace
@Deprecated public static java.lang.String getStackTrace(java.lang.Throwable t)
Deprecated.UseThrowables.getStackTraceAsString(Throwable)
Returns the stack trace of a throwable. Called from native code.- Parameters:
t
- Throwable- Returns:
- Stack trace
-
pre
@Deprecated public static void pre(boolean b, java.lang.String description)
Deprecated.UsePreconditions.checkArgument(boolean)
orObjects.requireNonNull(Object)
-
post
@Deprecated public static void post(boolean b, java.lang.String description)
Deprecated.UsePreconditions.checkArgument(boolean)
orObjects.requireNonNull(Object)
-
permAssert
@Deprecated public static void permAssert(boolean b, java.lang.String description)
Deprecated.UsePreconditions.checkArgument(boolean)
-
needToImplement
public static java.lang.RuntimeException needToImplement(java.lang.Object o)
Returns aRuntimeException
indicating that a particular feature has not been implemented, but should be.If every 'hole' in our functionality uses this method, it will be easier for us to identity the holes. Throwing a
UnsupportedOperationException
isn't as good, because sometimes we actually want to partially implement an API.Example usage:
class MyVisitor extends BaseVisitor { void accept(Foo foo) { // Exception will identify which subclass forgot to override // this method throw Util.needToImplement(this); } }
- Parameters:
o
- The object which was the target of the call, or null. Passing the object gives crucial information if a method needs to be overridden and a subclass forgot to do so.- Returns:
- an
UnsupportedOperationException
.
-
deprecated
public static <T> T deprecated(T argument, boolean fail)
Deprecated.If a piece of code calls this method, it indicates that the code needs to be cleaned up.Flags a piece of code as needing to be cleaned up before you check in.Introduce a call to this method to indicate that a piece of code, or a javadoc comment, needs work before you check in. If you have an IDE which can easily trace references, this is an easy way to maintain a to-do list.
Checked-in code must never call this method: you must remove all calls/references to this method before you check in.
The
argument
has generic type and determines the type of the result. This allows you to use the method inside an expression, for exampleint x = Util.deprecated(0, false);
but the usual usage is to pass in a descriptive string.
Examples
Example #1: Using
deprecated
to fail if a piece of supposedly dead code is reachedvoid foo(int x) { if (x < 0) { // If this code is executed, an error will be thrown. Util.deprecated( "no longer need to handle negative numbers", true); bar(x); } else { baz(x); } }
Example #2: Using
deprecated
to comment out dead codeif (Util.deprecated(false, false)) { // This code will not be executed, but an error will not be thrown. baz(); }
- Parameters:
argument
- Arbitrary argument to the method.fail
- Whether to throw an exception if this method is called- Returns:
- The value of the
argument
.
-
contains
public static boolean contains(java.lang.String[] a, int length, java.lang.String s)
Returns whether an array of strings contains a given string among the firstlength
entries.- Parameters:
a
- Array of stringslength
- Number of entries to searchs
- String to seek- Returns:
- Whether array contains the name
-
readAllAsString
@Deprecated public static java.lang.String readAllAsString(java.io.Reader reader) throws java.io.IOException
Deprecated.Reads all remaining contents from aReader
and returns them as a string.- Parameters:
reader
- reader to read from- Returns:
- reader contents as string
- Throws:
java.io.IOException
-
squelchJar
@Deprecated public static void squelchJar(java.util.jar.JarFile jar)
Deprecated.Closes a Jar, ignoring any I/O exception. This should only be used in finally blocks when it's necessary to avoid throwing an exception which might mask a real exception.- Parameters:
jar
- jar to close
-
squelchStream
@Deprecated public static void squelchStream(java.io.InputStream stream)
Deprecated.Closes an InputStream, ignoring any I/O exception. This should only be used in finally blocks when it's necessary to avoid throwing an exception which might mask a real exception.- Parameters:
stream
- stream to close
-
squelchStream
@Deprecated public static void squelchStream(java.io.OutputStream stream)
Deprecated.Closes an OutputStream, ignoring any I/O exception. This should only be used in finally blocks when it's necessary to avoid throwing an exception which might mask a real exception. If you want to make sure that data has been successfully flushed, do NOT use this anywhere else; use stream.close() instead.- Parameters:
stream
- stream to close
-
squelchReader
@Deprecated public static void squelchReader(java.io.Reader reader)
Deprecated.Closes a Reader, ignoring any I/O exception. This should only be used in finally blocks when it's necessary to avoid throwing an exception which might mask a real exception.- Parameters:
reader
- reader to close
-
squelchWriter
@Deprecated public static void squelchWriter(java.io.Writer writer)
Deprecated.Closes a Writer, ignoring any I/O exception. This should only be used in finally blocks when it's necessary to avoid throwing an exception which might mask a real exception. If you want to make sure that data has been successfully flushed, do NOT use this anywhere else; use writer.close() instead.- Parameters:
writer
- writer to close
-
squelchStmt
@Deprecated public static void squelchStmt(java.sql.Statement stmt)
Deprecated.Closes a Statement, ignoring any SQL exception. This should only be used in finally blocks when it's necessary to avoid throwing an exception which might mask a real exception.- Parameters:
stmt
- stmt to close
-
squelchConnection
@Deprecated public static void squelchConnection(java.sql.Connection connection)
Deprecated.Closes a Connection, ignoring any SQL exception. This should only be used in finally blocks when it's necessary to avoid throwing an exception which might mask a real exception.- Parameters:
connection
- connection to close
-
rtrim
@Deprecated public static java.lang.String rtrim(java.lang.String s)
Deprecated.Trims trailing spaces from a string.- Parameters:
s
- string to be trimmed- Returns:
- trimmed string
-
rpad
@Deprecated public static java.lang.String rpad(java.lang.String s, int len)
Deprecated.UseSpaces.padRight(String, int)
Pads a string with spaces up to a given length.- Parameters:
s
- string to be paddedlen
- desired length- Returns:
- padded string
-
toString
public static <T> java.lang.String toString(java.lang.Iterable<T> iterable, java.lang.String start, java.lang.String sep, java.lang.String end)
Converts an iterable to a string.
-
lines
public static java.lang.String lines(java.lang.Iterable<java.lang.String> strings)
Converts a list of strings to a string separated by newlines.
-
tokenize
public static java.lang.Iterable<java.lang.String> tokenize(java.lang.String s, java.lang.String delim)
Converts a string into tokens.
-
toPosix
public static java.lang.String toPosix(java.util.TimeZone tz, boolean verbose)
Converts a Java timezone to POSIX format, so that the boost C++ library can instantiate timezone objects.POSIX IEEE 1003.1 defines a format for timezone specifications.
The boost C++ library can read these specifications and instantiate posix_time_zone objects from them. The purpose of this method, therefore, is to allow the C++ code such as the fennel calculator to use the same notion of timezone as Java code.
The format is as follows:
"std offset dst [offset],start[/time],end[/time]"
where:
- 'std' specifies the abbrev of the time zone.
- 'offset' is the offset from UTC, and takes the form
[+|-]hh[:mm[:ss]] {h=0-23, m/s=0-59}
- 'dst' specifies the abbrev of the time zone during daylight savings time
- The second offset is how many hours changed during DST. Default=1
- 'start' and 'end' are the dates when DST goes into (and out of)
effect.
They can each be one of three forms:- Mm.w.d {month=1-12, week=1-5 (5 is always last), day=0-6}
- Jn {n=1-365 Feb29 is never counted}
- n {n=0-365 Feb29 is counted in leap years}
- 'time' has the same format as 'offset', and defaults to 02:00:00.
For example:
- "PST-8PDT01:00:00,M4.1.0/02:00:00,M10.1.0/02:00:00"; or more tersely
- "PST-8PDT,M4.1.0,M10.1.0"
(Real format strings do not contain spaces; they are in the above template only for readability.)
Boost apparently diverges from the POSIX standard in how it treats the sign of timezone offsets. The POSIX standard states 'If preceded by a '-', the timezone shall be east of the Prime Meridian; otherwise, it shall be west', yet boost requires the opposite. For instance, PST has offset '-8' above. This method generates timezone strings consistent with boost's expectations.
- Parameters:
tz
- Timezoneverbose
- Whether to include fields which can be omitted because they have their default values- Returns:
- Timezone in POSIX format (offset sign reversed, per boost's idiosyncracies)
-
appendPosixDaylightTransition
private static void appendPosixDaylightTransition(java.util.TimeZone tz, java.lang.StringBuilder buf, int mode, int day, int month, int dayOfWeek, int time, int timeMode, boolean verbose, boolean isEnd)
Writes a daylight savings time transition to a POSIX timezone description.- Parameters:
tz
- Timezonebuf
- Buffer to append tomode
- Transition modeday
- Day of transitionmonth
- Month of transitiondayOfWeek
- Day of week of transitiontime
- Time of transition in millistimeMode
- Mode of time transitionverbose
- VerboseisEnd
- Whether this transition is leaving DST
-
appendPosixTime
private static void appendPosixTime(java.lang.StringBuilder buf, int millis)
Given a time expressed in milliseconds, append the time formatted as "hh[:mm[:ss]]".- Parameters:
buf
- Buffer to append tomillis
- Milliseconds
-
parseLocale
public static java.util.Locale parseLocale(java.lang.String localeString)
Parses a locale string.The inverse operation of
Locale.toString()
.- Parameters:
localeString
- Locale string, e.g. "en" or "en_US"- Returns:
- Java locale object
-
cast
public static <E> java.util.List<E> cast(java.util.List<? super E> list, java.lang.Class<E> clazz)
Converts a list whose members are automatically down-cast to a given type.If a member of the backing list is not an instanceof
E
, the accessing method (such asList.get(int)
) will throw aClassCastException
.All modifications are automatically written to the backing list. Not synchronized.
- Parameters:
list
- Backing list.clazz
- Class to cast to.- Returns:
- A list whose members are of the desired type.
-
cast
public static <E> java.util.Iterator<E> cast(java.util.Iterator<?> iter, java.lang.Class<E> clazz)
Converts a iterator whose members are automatically down-cast to a given type.If a member of the backing iterator is not an instanceof
E
,Iterator.next()
) will throw aClassCastException
.All modifications are automatically written to the backing iterator. Not synchronized.
- Parameters:
iter
- Backing iterator.clazz
- Class to cast to.- Returns:
- An iterator whose members are of the desired type.
-
cast
public static <E> java.lang.Iterable<E> cast(java.lang.Iterable<? super E> iterable, java.lang.Class<E> clazz)
Converts anIterable
whose members are automatically down-cast to a given type.All modifications are automatically written to the backing iterator. Not synchronized.
- Parameters:
iterable
- Backing iterableclazz
- Class to cast to- Returns:
- An iterable whose members are of the desired type.
-
filter
public static <E> java.lang.Iterable<E> filter(java.lang.Iterable<?> iterable, java.lang.Class<E> includeFilter)
Makes a collection of untyped elements appear as a list of strictly typed elements, by filtering out those which are not of the correct type.The returned object is an
Iterable
, which makes it ideal for use with the 'foreach' construct. For example,List<Number> numbers = Arrays.asList(1, 2, 3.14, 4, null, 6E23);
for (int myInt : filter(numbers, Integer.class)) {
print(i);
}will print 1, 2, 4.
- Parameters:
iterable
- IterableincludeFilter
- Class whose instances to include
-
filter
public static <E> java.util.Collection<E> filter(java.util.Collection<?> collection, java.lang.Class<E> includeFilter)
-
filter
public static <E> java.util.List<E> filter(java.util.List<?> list, java.lang.Class<E> includeFilter)
Returns a subset of a list containing only elements of a given type.Modifications to the list are NOT written back to the source list.
- Parameters:
list
- List of objectsincludeFilter
- Class to filter for- Returns:
- List of objects of given class (or a subtype)
-
toMap
public static java.util.Map<java.lang.String,java.lang.String> toMap(java.util.Properties properties)
Converts aProperties
object to a
.Map
<String, String>This is necessary because
Properties
is a dinosaur class. It ought to extendMap<String,String>
, but instead extends
.Hashtable
<Object,Object>Typical usage, to iterate over a
Properties
:Properties properties;
for (Map.Entry<String, String> entry = Util.toMap(properties).entrySet()) {
println("key=" + entry.getKey() + ", value=" + entry.getValue());
}
-
mapOf
public static <K,V> java.util.Map<K,V> mapOf(K key, V value, java.lang.Object... keyValues)
Returns a hashmap with given contents.Use this method in initializers. Type parameters are inferred from context, and the contents are initialized declaratively. For example,
Map<String, Integer> population =
Olap4jUtil.mapOf(
"UK", 65000000,
"USA", 300000000);- Type Parameters:
K
- Key typeV
- Value type- Parameters:
key
- First keyvalue
- First valuekeyValues
- Second and sequent key/value pairs- Returns:
- Map with given contents
-
unexpected
public static <E extends java.lang.Enum<E>> java.lang.Error unexpected(E value)
Returns an exception indicating that we didn't expect to find this enumeration here.- Parameters:
value
- Enumeration value which was not expected- Returns:
- an error, to be thrown
-
enumConstants
public static <T extends java.lang.Enum<T>> java.util.Map<java.lang.String,T> enumConstants(java.lang.Class<T> clazz)
Creates a map of the values of an enumeration by name.- Parameters:
clazz
- Enumeration class- Returns:
- map of values
-
enumVal
public static <T extends java.lang.Enum<T>> T enumVal(java.lang.Class<T> clazz, java.lang.String name)
Returns the value of an enumeration with a particular name.Similar to
Enum.valueOf(Class, String)
, but returnsnull
rather than throwingIllegalArgumentException
.- Type Parameters:
T
- Enum class type- Parameters:
clazz
- Enum classname
- Name of enum constant- Returns:
- Enum constant or null
-
enumVal
public static <T extends java.lang.Enum<T>> T enumVal(T default_, java.lang.String name)
Returns the value of an enumeration with a particular or default value if not found.- Type Parameters:
T
- Enum class type- Parameters:
default_
- Default value (not null)name
- Name of enum constant- Returns:
- Enum constant, never null
-
quotientList
public static <E> java.util.List<E> quotientList(java.util.List<E> list, int n, int k)
Creates a list that returns everyn
th element of a list, starting at elementk
.It is OK if the list is empty or its size is not a multiple of
n
.For instance,
quotientList(list, 2, 0)
returns the even elements of a list, andquotientList(list, 2, 1)
returns the odd elements. Those lists are the same length only if list has even size.
-
pairs
public static <E> java.util.List<Pair<E,E>> pairs(java.util.List<E> list)
Given a list with N elements [e0, e1, ..., eN-1] (where N is even), returns a list of the N / 2 elements [ (e0, e1), (e2, e3), ... ].
-
first
public static <T> T first(T v0, T v1)
Returns the first value if it is not null, otherwise the second value.The result may be null.
Equivalent to the Elvis operator (
?:
) of languages such as Groovy or PHP.
-
first
public static double first(java.lang.Double v0, double v1)
Unboxes aDouble
value, using a given default value if it is null.
-
first
public static float first(java.lang.Float v0, float v1)
Unboxes aFloat
value, using a given default value if it is null.
-
first
public static int first(java.lang.Integer v0, int v1)
Unboxes aInteger
value, using a given default value if it is null.
-
first
public static long first(java.lang.Long v0, long v1)
Unboxes aLong
value, using a given default value if it is null.
-
first
public static boolean first(java.lang.Boolean v0, boolean v1)
Unboxes aBoolean
value, using a given default value if it is null.
-
first
public static short first(java.lang.Short v0, short v1)
Unboxes aShort
value, using a given default value if it is null.
-
first
public static char first(java.lang.Character v0, char v1)
Unboxes aCharacter
value, using a given default value if it is null.
-
first
public static byte first(java.lang.Byte v0, byte v1)
Unboxes aByte
value, using a given default value if it is null.
-
orEmpty
public static <T> java.lang.Iterable<T> orEmpty(java.lang.Iterable<T> v0)
-
last
public static <E> E last(java.util.List<E> list)
Returns the last element of a list.- Throws:
java.lang.IndexOutOfBoundsException
- if the list is empty
-
skipLast
public static <E> java.util.List<E> skipLast(java.util.List<E> list)
Returns every element of a list but its last element.
-
skipLast
public static <E> java.util.List<E> skipLast(java.util.List<E> list, int n)
Returns every element of a list but its lastn
elements.
-
last
public static <E> java.util.List<E> last(java.util.List<E> list, int n)
Returns the lastn
elements of a list.
-
skip
public static <E> java.util.List<E> skip(java.util.List<E> list)
Returns all but the first element of a list.
-
skip
public static <E> java.util.List<E> skip(java.util.List<E> list, int fromIndex)
Returns all but the firstn
elements of a list.
-
range
public static java.util.List<java.lang.Integer> range(int end)
-
range
public static java.util.List<java.lang.Integer> range(int start, int end)
-
isDistinct
public static <E> boolean isDistinct(java.util.List<E> list)
Returns whether the elements oflist
are distinct.
-
firstDuplicate
public static <E> int firstDuplicate(java.util.List<E> list)
Returns the ordinal of the first element in the list which is equal to a previous element in the list.For example,
firstDuplicate(Arrays.asList("a", "b", "c", "b", "a"))
returns 3, the ordinal of the 2nd "b".- Parameters:
list
- List- Returns:
- Ordinal of first duplicate, or -1 if not found
-
distinctList
public static <E> java.util.List<E> distinctList(java.util.List<E> list)
Converts a list into a list with unique elements.The order is preserved; the second and subsequent occurrences are removed.
If the list is already unique it is returned unchanged.
-
distinctList
public static <E> java.util.List<E> distinctList(java.lang.Iterable<E> keys)
Converts an iterable into a list with unique elements.The order is preserved; the second and subsequent occurrences are removed.
If
iterable
is a unique list it is returned unchanged.
-
intersects
public static <E> boolean intersects(java.util.Collection<E> c0, java.util.Collection<E> c1)
Returns whether two collections have any elements in common.
-
findMatch
public static int findMatch(java.util.List<java.lang.String> strings, java.lang.String seek, boolean caseSensitive)
Looks for a string within a list of strings, using a given case-sensitivity policy, and returns the position at which the first match is found, or -1 if there are no matches.
-
matches
public static boolean matches(boolean caseSensitive, java.lang.String s0, java.lang.String s1)
Returns whether a name matches another according to a given case-sensitivity policy.
-
startsWith
public static <E> boolean startsWith(java.util.List<E> list0, java.util.List<E> list1)
Returns whether one list is a prefix of another.
-
listToString
public static java.lang.String listToString(java.util.List<java.lang.String> list)
Converts ["ab", "c"] to "ab"."c".
-
stringToList
public static java.util.List<java.lang.String> stringToList(java.lang.String s)
-
human
public static java.lang.String human(double d)
Converts a number into human-readable form, with 3 digits and a "K", "M" or "G" multiplier for thousands, millions or billions.Examples: -2, 0, 1, 999, 1.00K, 1.99K, 3.45M, 4.56B.
-
digits3
private static java.lang.String digits3(long x, int z)
-
asIndexMapJ
public static <K,V> java.util.Map<K,V> asIndexMapJ(java.util.Collection<V> values, java.util.function.Function<V,K> function)
Returns a map that is a view onto a collection of values, using the provided function to convert a value to a key.Unlike
Maps.uniqueIndex(Iterable, com.google.common.base.Function)
, returns a view whose contents change as the collection of values changes.- Type Parameters:
K
- Key typeV
- Value type- Parameters:
values
- Collection of valuesfunction
- Function to map value to key- Returns:
- Map that is a view onto the values
-
asIndexMap
@Deprecated public static <K,V> java.util.Map<K,V> asIndexMap(java.util.Collection<V> values, com.google.common.base.Function<V,K> function)
Deprecated.
-
debugCode
public static void debugCode(java.io.PrintStream out, java.lang.String code)
Prints the given code with line numbering.
-
getBooleanProperty
public static boolean getBooleanProperty(java.lang.String property)
Returns the value of a system property as a boolean.For example, the property "foo" is considered true if you supply
-Dfoo
or-Dfoo=true
or-Dfoo=TRUE
, false if you omit the flag or supply-Dfoo=false
.- Parameters:
property
- Property name- Returns:
- Whether property is true
-
getBooleanProperty
public static boolean getBooleanProperty(java.lang.String property, boolean defaultValue)
Returns the value of a system property as a boolean, returning a given default value if the property is not specified.
-
immutableCopy
public static <E> java.util.List<java.util.List<E>> immutableCopy(java.lang.Iterable<? extends java.lang.Iterable<E>> lists)
Returns a copy of a list of lists, making the component lists immutable if they are not already.
-
printWriter
public static java.io.PrintWriter printWriter(java.io.OutputStream out)
Creates aPrintWriter
to a given output stream using UTF-8 character set.Does not use the default character set.
-
printWriter
public static java.io.PrintWriter printWriter(java.io.File file) throws java.io.FileNotFoundException
Creates aPrintWriter
to a given file using UTF-8 character set.Does not use the default character set.
- Throws:
java.io.FileNotFoundException
-
reader
public static java.io.BufferedReader reader(java.io.InputStream in)
Creates aBufferedReader
to a given input stream using UTF-8 character set.Does not use the default character set.
-
reader
public static java.io.BufferedReader reader(java.io.File file) throws java.io.FileNotFoundException
Creates aBufferedReader
to read a given file using UTF-8 character set.Does not use the default character set.
- Throws:
java.io.FileNotFoundException
-
calendar
public static java.util.Calendar calendar()
Creates aCalendar
in the UTC time zone and root locale. Does not use the time zone or locale.
-
calendar
public static java.util.Calendar calendar(long millis)
Creates aCalendar
in the UTC time zone and root locale with a given time.
-
toImmutableList
public static <T> java.util.stream.Collector<T,com.google.common.collect.ImmutableList.Builder<T>,com.google.common.collect.ImmutableList<T>> toImmutableList()
Returns aCollector
that accumulates the input elements into a GuavaImmutableList
via aImmutableList.Builder
.It will be obsolete when we move to
Guava 21.0
, which hasImmutableList.toImmutableList()
.- Type Parameters:
T
- Type of the input elements- Returns:
- a
Collector
that collects all the input elements into anImmutableList
, in encounter order
-
transform
public static <F,T> java.util.List<T> transform(java.util.List<F> list, java.util.function.Function<F,T> function)
Transforms a list, applying a function to each element.
-
filter
public static <E> java.lang.Iterable<E> filter(java.lang.Iterable<E> iterable, java.util.function.Predicate<E> predicate)
Filters an iterable.
-
filter
public static <E> java.util.Iterator<E> filter(java.util.Iterator<E> iterator, java.util.function.Predicate<E> predicate)
Filters an iterator.
-
-