mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-12 03:54:28 +02:00
Updated AndroidX
This commit is contained in:
118
app/src/main/java/androidx/room/StringUtil.java
Normal file
118
app/src/main/java/androidx/room/StringUtil.java
Normal file
@@ -0,0 +1,118 @@
|
||||
/*
|
||||
* Copyright (C) 2016 The Android Open Source Project
|
||||
*
|
||||
* 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 androidx.room.util;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.RestrictTo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.StringTokenizer;
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*
|
||||
* String utilities for Room
|
||||
*/
|
||||
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
|
||||
public class StringUtil {
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public static final String[] EMPTY_STRING_ARRAY = new String[0];
|
||||
/**
|
||||
* Returns a new StringBuilder to be used while producing SQL queries.
|
||||
*
|
||||
* @return A new or recycled StringBuilder
|
||||
*/
|
||||
public static StringBuilder newStringBuilder() {
|
||||
// TODO pool:
|
||||
return new StringBuilder();
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds bind variable placeholders (?) to the given string. Each placeholder is separated
|
||||
* by a comma.
|
||||
*
|
||||
* @param builder The StringBuilder for the query
|
||||
* @param count Number of placeholders
|
||||
*/
|
||||
public static void appendPlaceholders(StringBuilder builder, int count) {
|
||||
for (int i = 0; i < count; i++) {
|
||||
builder.append("?");
|
||||
if (i < count - 1) {
|
||||
builder.append(",");
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Splits a comma separated list of integers to integer list.
|
||||
* <p>
|
||||
* If an input is malformed, it is omitted from the result.
|
||||
*
|
||||
* @param input Comma separated list of integers.
|
||||
* @return A List containing the integers or null if the input is null.
|
||||
*/
|
||||
@Nullable
|
||||
public static List<Integer> splitToIntList(@Nullable String input) {
|
||||
if (input == null) {
|
||||
return null;
|
||||
}
|
||||
List<Integer> result = new ArrayList<>();
|
||||
StringTokenizer tokenizer = new StringTokenizer(input, ",");
|
||||
while (tokenizer.hasMoreElements()) {
|
||||
final String item = tokenizer.nextToken();
|
||||
try {
|
||||
result.add(Integer.parseInt(item));
|
||||
} catch (NumberFormatException ex) {
|
||||
Log.e("ROOM", "Malformed integer list", ex);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Joins the given list of integers into a comma separated list.
|
||||
*
|
||||
* @param input The list of integers.
|
||||
* @return Comma separated string composed of integers in the list. If the list is null, return
|
||||
* value is null.
|
||||
*/
|
||||
@Nullable
|
||||
public static String joinIntoString(@Nullable List<Integer> input) {
|
||||
if (input == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
final int size = input.size();
|
||||
if (size == 0) {
|
||||
return "";
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < size; i++) {
|
||||
sb.append(Integer.toString(input.get(i)));
|
||||
if (i < size - 1) {
|
||||
sb.append(",");
|
||||
}
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
private StringUtil() {
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user