All Downloads are FREE. Search and download functionalities are using the official Maven repository.

androidx.room.util.StringUtil Maven / Gradle / Ivy

Go to download

A library jar that provides APIs for Applications written for the Google Android Platform.

There is a newer version: 14-robolectric-10818077
Show newest version
/*
 * 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)
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.
     * 

* 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 splitToIntList(@Nullable String input) { if (input == null) { return null; } List 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 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() { } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy