ShadowTextUtils.java revision 83003bbf38ccf4556ccc09ed9ce97c7725d58623
133873d2b41a5cd2597b20a4e88eb8942944c0f23Tyler Schultzpackage com.xtremelabs.robolectric.shadows;
23a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard
33a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richardimport android.text.TextUtils;
422c22c9aa4ca68c2deac6164edc1d82bc9645310Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.internal.Implementation;
522c22c9aa4ca68c2deac6164edc1d82bc9645310Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.internal.Implements;
63a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard
7ac58b328bde3c77d1d9687408e547faad3b77e2bPhil Goodwin/**
8ac58b328bde3c77d1d9687408e547faad3b77e2bPhil Goodwin * Shadow for the {@code TextUtils} class that implements the {@link #expandTemplate(CharSequence, CharSequence...)}
9ac58b328bde3c77d1d9687408e547faad3b77e2bPhil Goodwin * method.
10ac58b328bde3c77d1d9687408e547faad3b77e2bPhil Goodwin */
113a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard@SuppressWarnings({"UnusedDeclaration"})
123a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard@Implements(TextUtils.class)
13afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williamspublic class ShadowTextUtils {
14de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams    @Implementation
153a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard    public static CharSequence expandTemplate(CharSequence template,
163a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard                                              CharSequence... values) {
173a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard        String s = template.toString();
183a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard        for (int i = 0, valuesLength = values.length; i < valuesLength; i++) {
193a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard            CharSequence value = values[i];
203a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard            s = s.replace("^" + (i + 1), value);
213a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard        }
223a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard        return s;
233a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard    }
247b451e9ee0ea07caeb2a0667ab44a321a36127ffJan Berkel
257b451e9ee0ea07caeb2a0667ab44a321a36127ffJan Berkel    @Implementation
267b451e9ee0ea07caeb2a0667ab44a321a36127ffJan Berkel    public static boolean isEmpty(CharSequence s) {
277b451e9ee0ea07caeb2a0667ab44a321a36127ffJan Berkel      return (s == null || s.length() == 0);
287b451e9ee0ea07caeb2a0667ab44a321a36127ffJan Berkel    }
2983003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel
3083003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel    @Implementation
3183003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel    public static String join(CharSequence delimiter, Iterable tokens) {
3283003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel        StringBuilder sb = new StringBuilder();
3383003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel        boolean firstTime = true;
3483003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel        for (Object token: tokens) {
3583003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel            if (firstTime) {
3683003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel                firstTime = false;
3783003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel            } else {
3883003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel                sb.append(delimiter);
3983003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel            }
4083003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel            sb.append(token);
4183003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel        }
4283003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel        return sb.toString();
4383003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel    }
4483003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel
4583003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel    @Implementation
4683003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel    public static String join(CharSequence delimiter, Object[] tokens) {
4783003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel        StringBuilder sb = new StringBuilder();
4883003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel        boolean firstTime = true;
4983003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel        for (Object token: tokens) {
5083003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel            if (firstTime) {
5183003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel                firstTime = false;
5283003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel            } else {
5383003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel                sb.append(delimiter);
5483003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel            }
5583003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel            sb.append(token);
5683003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel        }
5783003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel        return sb.toString();
5883003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel    }
593a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard}
60