1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.apache.commons.compress.archivers.sevenz; 18 19 /** 20 * Map between folders, files and streams. 21 */ 22 final class StreamMap { 23 24 /** 25 * The first Archive.packStream index of each folder. 26 */ 27 final int[] folderFirstPackStreamIndex; 28 29 /** 30 * Offset to beginning of this pack stream's data, relative to the beginning of the first pack stream. 31 */ 32 final long[] packStreamOffsets; 33 34 /** 35 * Index of first file for each folder. 36 */ 37 final int[] folderFirstFileIndex; 38 39 /** 40 * Index of folder for each file. 41 */ 42 final int[] fileFolderIndex; 43 44 StreamMap(final int[] folderFirstPackStreamIndex, final long[] packStreamOffsets, final int[] folderFirstFileIndex, final int[] fileFolderIndex) { 45 this.folderFirstPackStreamIndex = folderFirstPackStreamIndex; 46 this.packStreamOffsets = packStreamOffsets; 47 this.folderFirstFileIndex = folderFirstFileIndex; 48 this.fileFolderIndex = fileFolderIndex; 49 } 50 51 @Override 52 public String toString() { 53 return "StreamMap with indices of " + folderFirstPackStreamIndex.length + " folders, offsets of " + packStreamOffsets.length + " packed streams," 54 + " first files of " + folderFirstFileIndex.length + " folders and" + " folder indices for " + fileFolderIndex.length + " files"; 55 } 56 }