KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > tools > zip > ZipExtraField


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  */

18
19 package org.apache.tools.zip;
20
21 import java.util.zip.ZipException JavaDoc;
22
23 /**
24  * General format of extra field data.
25  *
26  * <p>Extra fields usually appear twice per file, once in the local
27  * file data and once in the central directory. Usually they are the
28  * same, but they don't have to be. {@link
29  * java.util.zip.ZipOutputStream java.util.zip.ZipOutputStream} will
30  * only use the local file data in both places.</p>
31  *
32  */

33 public interface ZipExtraField {
34
35     /**
36      * The Header-ID.
37      * @return the header id
38      * @since 1.1
39      */

40     ZipShort getHeaderId();
41
42     /**
43      * Length of the extra field in the local file data - without
44      * Header-ID or length specifier.
45      * @return the length of the field in the local file data
46      * @since 1.1
47      */

48     ZipShort getLocalFileDataLength();
49
50     /**
51      * Length of the extra field in the central directory - without
52      * Header-ID or length specifier.
53      * @return the length of the field in the central directory
54      * @since 1.1
55      */

56     ZipShort getCentralDirectoryLength();
57
58     /**
59      * The actual data to put into local file data - without Header-ID
60      * or length specifier.
61      * @return the data
62      * @since 1.1
63      */

64     byte[] getLocalFileDataData();
65
66     /**
67      * The actual data to put central directory - without Header-ID or
68      * length specifier.
69      * @return the data
70      * @since 1.1
71      */

72     byte[] getCentralDirectoryData();
73
74     /**
75      * Populate data from this array as if it was in local file data.
76      * @param data an array of bytes
77      * @param offset the start offset
78      * @param length the number of bytes in the array from offset
79      *
80      * @since 1.1
81      * @throws ZipException on error
82      */

83     void parseFromLocalFileData(byte[] data, int offset, int length)
84         throws ZipException JavaDoc;
85 }
86
Popular Tags