private void emitPermutationsAppCache(TreeLogger logger,LinkerContext context,ArtifactSet artifacts,String startScreenId,OfflineScreen offlineScreen) throws UnableToCompleteException {
  for (  EmittedArtifact emitted : artifacts.find(EmittedArtifact.class)) {
    if (emitted.getVisibility() == Visibility.Private) {
      continue;
    }
    String pathName=emitted.getPartialPath();
    if (acceptCachedResource(pathName)) {
      if (!allArtifacts.contains(pathName)) {
        cachedArtifacts.add(pathName);
      }
    }
  }
  Set<ArtifactsGroup> keySet=artifactsByGroup.keySet();
  for (  ArtifactsGroup group : keySet) {
    Set<String> set=artifactsByGroup.get(group);
    set.addAll(cachedArtifacts);
    artifacts.add(createCacheManifest(context,logger,set,group.getGroupId(),startScreenId,offlineScreen));
    artifacts.add(createCacheManifestLoader(context,logger,group.getGroupId(),startScreenId));
  }
}

private void emitPermutationsAppCache ( TreeLogger logger , LinkerContext context , ArtifactSet artifacts , String startScreenId , OfflineScreen offlineScreen ) throws UnableToCompleteException { for ( EmittedArtifact emitted : artifacts . find ( EmittedArtifact . class ) ) { if ( emitted . getVisibility ( ) == Visibility . Private ) { continue ; } String pathName = emitted . getPartialPath ( ) ; if ( acceptCachedResource ( pathName ) ) { if ( ! allArtifacts . contains ( pathName ) ) { cachedArtifacts . add ( pathName ) ; } } } Set < ArtifactsGroup > keySet = artifactsByGroup . keySet ( ) ; for ( ArtifactsGroup group : keySet ) { Set < String > set = artifactsByGroup . get ( group ) ; set . addAll ( cachedArtifacts ) ; artifacts . add ( createCacheManifest ( context , logger , set , group . getGroupId ( ) , startScreenId , offlineScreen ) ) ; artifacts . add ( createCacheManifestLoader ( context , logger , group . getGroupId ( ) , startScreenId ) ) ; } }
manifest file manipulation methods
