code: private void iterateChangedAndAdded(ZipEntryOrInfoAdapter zipEntryCallback) {
  
      for (ZipEntrySource entrySource : changedEntries) {
        InputStream entrySourceStream = null;
        try {
          ZipEntry entry = entrySource.getEntry();
          if (nameMapper != null) {
            String mappedName = nameMapper.map(entry.getName());
            if (mappedName == null) {
              continue; // we should ignore this entry
            }
            else if (!mappedName.equals(entry.getName())) {
              // if name is different, do nothing
              entry = ZipEntryUtil.copy(entry, mappedName);
            }
          }
          entrySourceStream = entrySource.getInputStream();
          zipEntryCallback.process(entrySourceStream, entry);
        }
        catch (ZipBreakException ex) {
          break;
        }
        catch (IOException e) {
          ZipExceptionUtil.rethrow(e);
        }
        finally {
           IOUtils.closeQuietly(entrySourceStream);
        }
      }
    }
docs: Iterate through ZipEntrySources for added or changed entries with a given callback
  
  @param zipEntryCallback callback to execute on entries or their info