KickJava   Java API By Example, From Geeks To Geeks.

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


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  * If this extra field is added as the very first extra field of the
25  * archive, Solaris will consider it an executable jar file.
26  *
27  * @since Ant 1.6.3
28  */

29 public final class JarMarker implements ZipExtraField {
30
31     private static final ZipShort ID = new ZipShort(0xCAFE);
32     private static final ZipShort NULL = new ZipShort(0);
33     private static final byte[] NO_BYTES = new byte[0];
34     private static final JarMarker DEFAULT = new JarMarker();
35
36     /** No-arg constructor */
37     public JarMarker() {
38         // empty
39
}
40
41     /**
42      * Since JarMarker is stateless we can always use the same instance.
43      * @return the DEFAULT jarmaker.
44      */

45     public static JarMarker getInstance() {
46         return DEFAULT;
47     }
48
49     /**
50      * The Header-ID.
51      * @return the header id
52      */

53     public ZipShort getHeaderId() {
54         return ID;
55     }
56
57     /**
58      * Length of the extra field in the local file data - without
59      * Header-ID or length specifier.
60      * @return 0
61      */

62     public ZipShort getLocalFileDataLength() {
63         return NULL;
64     }
65
66     /**
67      * Length of the extra field in the central directory - without
68      * Header-ID or length specifier.
69      * @return 0
70      */

71     public ZipShort getCentralDirectoryLength() {
72         return NULL;
73     }
74
75     /**
76      * The actual data to put into local file data - without Header-ID
77      * or length specifier.
78      * @return the data
79      * @since 1.1
80      */

81     public byte[] getLocalFileDataData() {
82         return NO_BYTES;
83     }
84
85     /**
86      * The actual data to put central directory - without Header-ID or
87      * length specifier.
88      * @return the data
89      */

90     public byte[] getCentralDirectoryData() {
91         return NO_BYTES;
92     }
93
94     /**
95      * Populate data from this array as if it was in local file data.
96      * @param data an array of bytes
97      * @param offset the start offset
98      * @param length the number of bytes in the array from offset
99      *
100      * @throws ZipException on error
101      */

102     public void parseFromLocalFileData(byte[] data, int offset, int length)
103         throws ZipException JavaDoc {
104         if (length != 0) {
105             throw new ZipException JavaDoc("JarMarker doesn't expect any data");
106         }
107     }
108 }
109
Popular Tags