| package org.robolectric.annotation.internal; |
| |
| import org.robolectric.annotation.Config; |
| |
| public class ConfigUtils { |
| private ConfigUtils() { |
| } |
| |
| public static String[] parseStringArrayProperty(String property) { |
| if (property.isEmpty()) return new String[0]; |
| return property.split("[, ]+"); |
| } |
| |
| public static int[] parseSdkArrayProperty(String property) { |
| String[] parts = parseStringArrayProperty(property); |
| int[] result = new int[parts.length]; |
| for (int i = 0; i < parts.length; i++) { |
| result[i] = parseSdkInt(parts[i]); |
| } |
| |
| return result; |
| } |
| |
| public static int parseSdkInt(String part) { |
| String spec = part.trim(); |
| switch (spec) { |
| case "ALL_SDKS": |
| return Config.ALL_SDKS; |
| case "TARGET_SDK": |
| return Config.TARGET_SDK; |
| case "OLDEST_SDK": |
| return Config.OLDEST_SDK; |
| case "NEWEST_SDK": |
| return Config.NEWEST_SDK; |
| default: |
| try { |
| return Integer.parseInt(spec); |
| } catch (NumberFormatException e) { |
| try { |
| return (int) android.os.Build.VERSION_CODES.class.getField(part).get(null); |
| } catch (Exception e2) { |
| throw new IllegalArgumentException("unknown SDK \"" + part + "\""); |
| } |
| } |
| } |
| } |
| } |