List of usage examples for com.google.common.collect ImmutableBiMap of
public static <K, V> ImmutableBiMap<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3)
From source file:com.android.tools.idea.gradle.structure.editors.KeyValuePane.java
public KeyValuePane(@NotNull Project project, @NotNull ModificationListener listener) { myProject = project;// ww w . j av a 2s. co m myListener = listener; AndroidSdkHandler sdkHandler = null; AndroidSdkData androidSdkData = AndroidSdks.getInstance().tryToChooseAndroidSdk(); if (androidSdkData != null) { sdkHandler = androidSdkData.getSdkHandler(); } // Use immutable maps with builders for our built-in value maps because ImmutableBiMap ensures that iteration order is the same as // insertion order. ImmutableBiMap.Builder<String, String> buildToolsMapBuilder = ImmutableBiMap.builder(); ImmutableBiMap.Builder<String, String> apisMapBuilder = ImmutableBiMap.builder(); ImmutableBiMap.Builder<String, String> compiledApisMapBuilder = ImmutableBiMap.builder(); if (sdkHandler != null) { ProgressIndicator logger = new StudioLoggerProgressIndicator(getClass()); RepositoryPackages packages = sdkHandler.getSdkManager(logger).getPackages(); Set<String> buildToolKeys = Sets.newHashSet(); for (LocalPackage p : packages.getLocalPackagesForPrefix(SdkConstants.FD_BUILD_TOOLS)) { String key = p.getVersion().toString(); // It's possible to end up with multiple build tools with the same key; for example // "build-tools;24.0.0-preview" and "build-tools;24.0.0-rc4" - these both have the // version name 24.0.0 rc4. Prevent an exception in this scenario where the PSD // can't be opened because a bi-map can't be constructed. if (!buildToolKeys.contains(key)) { buildToolsMapBuilder.put(key, key); buildToolKeys.add(key); } } for (IAndroidTarget target : sdkHandler.getAndroidTargetManager(logger).getTargets(logger)) { String label = getTargetLabel(target); String apiString, platformString; if (target.isPlatform()) { String value = target.getVersion().getApiString(); if (target.getVersion().isPreview()) { platformString = AndroidTargetHash.getPlatformHashString(target.getVersion()); } else { platformString = value; } apiString = value; apisMapBuilder.put(apiString, label); } else { platformString = getAddonHashString(target.getVendor(), target.getName(), target.getVersion()); } compiledApisMapBuilder.put(platformString, label); } } BiMap<String, String> installedBuildTools = buildToolsMapBuilder.build(); BiMap<String, String> installedApis = apisMapBuilder.build(); BiMap<String, String> installedCompileApis = compiledApisMapBuilder.build(); BiMap<String, String> javaCompatibility; if (installedApis.containsKey("N")) { javaCompatibility = ImmutableBiMap.of("JavaVersion.VERSION_1_6", "1.6", "JavaVersion.VERSION_1_7", "1.7", "JavaVersion.VERSION_1_8", "1.8"); } else { javaCompatibility = ImmutableBiMap.of("JavaVersion.VERSION_1_6", "1.6", "JavaVersion.VERSION_1_7", "1.7"); } myKeysWithKnownValues = ImmutableMap.<BuildFileKey, BiMap<String, String>>builder() .put(BuildFileKey.MIN_SDK_VERSION, installedApis) .put(BuildFileKey.TARGET_SDK_VERSION, installedApis) .put(BuildFileKey.COMPILE_SDK_VERSION, installedCompileApis) .put(BuildFileKey.BUILD_TOOLS_VERSION, installedBuildTools) .put(BuildFileKey.SOURCE_COMPATIBILITY, javaCompatibility) .put(BuildFileKey.TARGET_COMPATIBILITY, javaCompatibility).build(); }