classesStartingWithPackage(new TreeSet<>(unsupportedMembers.keys()), allowedPkg)) { if (classIsInExactPackage(cls, allowedPkg)) { unsupportedMembers.removeAll(cls);
HashMultimap hmm = HashMultimap.create(); HashMultimap hmm2 = HashMultimap.create(); Element ele = new Element(); hmm2.put("name", "Amit"); hmm.put("Amit", ele); hmm.put("rohit", hmm2); Iterator itr = hmm.keys().iterator(); String ky = (String) itr.next(); Set elements = hmm.get(ky); Iterator elementsItr = elements.iterator(); Object val = elementsItr.next(); if (val instanceof Element) { doElementStuff((Element) val); } ky = (String) itr.next(); elements = hmm.get(ky); elementsItr = elements.iterator(); val = elementsItr.next(); if (val instanceof Element) { doElementStuff((Element) val); }
public static InstallDetails install(Project project, ImmutableMap<String, Asset> add, Set<PackageManifest> targetManifests) { Map<String, File> filesByGUID = buildGUIDToUnitypackageMap(targetManifests); HashMultimap<File, String> guidsByFile = HashMultimap.create(); for (Map.Entry<String, Asset> entry : add.entrySet()) { Log.L.info("add " + entry.getKey() + " " + entry.getValue().getPath()); File f = filesByGUID.get(entry.getKey()); Log.L.info("Putting " + f.getPath() + " " + entry.getKey()); guidsByFile.put(f, entry.getKey()); } Set<File> completePackages = Sets.newHashSet(); HashMultimap<File, String> partialPackages = HashMultimap.create(); for (File file : guidsByFile.keys()) { PackageManifest manifest = findManifest(file, targetManifests); if (manifest.getFiles().size() == guidsByFile.get(file).size()) { Log.L.info("Install all {}", file.getName()); completePackages.add(file); } else { Log.L.info("Install partially {}", file.getName()); partialPackages.putAll(file, guidsByFile.values()); } } Log.L.info("Installing {} complete packages, {} partial", completePackages.size(), partialPackages.size()); return new InstallDetails(ImmutableSet.copyOf(completePackages), mergeArchives(project, partialPackages)); }
public static InstallDetails install(Project project, ImmutableMap<String, Asset> add, Set<PackageManifest> targetManifests) { Map<String, File> filesByGUID = buildGUIDToUnitypackageMap(targetManifests); HashMultimap<File, String> guidsByFile = HashMultimap.create(); for (Map.Entry<String, Asset> entry : add.entrySet()) { Log.L.info("add " + entry.getKey() + " " + entry.getValue().getPath()); File f = filesByGUID.get(entry.getKey()); Log.L.info("Putting " + f.getPath() + " " + entry.getKey()); guidsByFile.put(f, entry.getKey()); } Set<File> completePackages = Sets.newHashSet(); HashMultimap<File, String> partialPackages = HashMultimap.create(); for (File file : guidsByFile.keys()) { PackageManifest manifest = findManifest(file, targetManifests); if (manifest.getFiles().size() == guidsByFile.get(file).size()) { Log.L.info("Install all {}", file.getName()); completePackages.add(file); } else { Log.L.info("Install partially {}", file.getName()); partialPackages.putAll(file, guidsByFile.values()); } } Log.L.info("Installing {} complete packages, {} partial", completePackages.size(), partialPackages.size()); return new InstallDetails(ImmutableSet.copyOf(completePackages), mergeArchives(project, partialPackages)); }
classesStartingWithPackage(new TreeSet<>(unsupportedMembers.keys()), allowedPkg)) { if (classIsInExactPackage(cls, allowedPkg)) { unsupportedMembers.removeAll(cls);
public static FileTree mergeArchives(Project project, HashMultimap<File, String> filesAndPaths) { FileTree result = null; for (File file : filesAndPaths.keys()) { ReadableResource resource = project.getResources().gzip(file); PatternSet pattern = new PatternSet(); for (String s : filesAndPaths.get(file)) { pattern.include(String.format("**/%s/**", s)); } FileTree tree = project.tarTree(resource).matching(pattern); if (null == result) { result = tree; } else { result = result.plus(tree); } } return result; }
public static FileTree mergeArchives(Project project, HashMultimap<File, String> filesAndPaths) { FileTree result = null; for (File file : filesAndPaths.keys()) { ReadableResource resource = project.getResources().gzip(file); PatternSet pattern = new PatternSet(); for (String s : filesAndPaths.get(file)) { pattern.include(String.format("**/%s/**", s)); } FileTree tree = project.tarTree(resource).matching(pattern); if (null == result) { result = tree; } else { result = result.plus(tree); } } return result; }