1 /** 2 * 3 * Copyright 2004 The Apache Software Foundation 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * 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.geronimo.deployment.util; 18 19 import java.io.IOException; 20 import java.security.cert.Certificate; 21 import java.util.jar.Attributes; 22 import java.util.jar.JarEntry; 23 import java.util.jar.Manifest; 24 25 /** 26 * @version $Rev: 355877 $ $Date: 2005-12-10 18:48:27 -0800 (Sat, 10 Dec 2005) $ 27 */ 28 public class NestedJarEntry extends JarEntry { 29 private final JarEntry baseEntry; 30 private final Manifest manifest; 31 32 public NestedJarEntry(String name, JarEntry baseEntry, Manifest manifest) { 33 super(name); 34 this.baseEntry = baseEntry; 35 this.manifest = manifest; 36 } 37 38 public JarEntry getBaseEntry() { 39 return baseEntry; 40 } 41 42 public Attributes getAttributes() throws IOException { 43 if (manifest == null) { 44 return null; 45 } 46 return manifest.getAttributes(getName()); 47 } 48 49 /** 50 * Always return null. This could be implementd by verifing the signatures 51 * in the manifest file against the actual file, but we don't need this for 52 * Geronimo. 53 * @return null 54 */ 55 public Certificate[] getCertificates() { 56 return null; 57 } 58 59 public long getTime() { 60 return baseEntry.getTime(); 61 } 62 63 public void setTime(long time) { 64 baseEntry.setTime(time); 65 } 66 67 public long getSize() { 68 return baseEntry.getSize(); 69 } 70 71 public void setSize(long size) { 72 baseEntry.setSize(size); 73 } 74 75 public long getCompressedSize() { 76 return baseEntry.getCompressedSize(); 77 } 78 79 public void setCompressedSize(long csize) { 80 baseEntry.setCompressedSize(csize); 81 } 82 83 public long getCrc() { 84 return baseEntry.getCrc(); 85 } 86 87 public void setCrc(long crc) { 88 baseEntry.setCrc(crc); 89 } 90 91 public int getMethod() { 92 return baseEntry.getMethod(); 93 } 94 95 public void setMethod(int method) { 96 baseEntry.setMethod(method); 97 } 98 99 public byte[] getExtra() { 100 return baseEntry.getExtra(); 101 } 102 103 public void setExtra(byte[] extra) { 104 baseEntry.setExtra(extra); 105 } 106 107 public String getComment() { 108 return baseEntry.getComment(); 109 } 110 111 public void setComment(String comment) { 112 baseEntry.setComment(comment); 113 } 114 115 public boolean isDirectory() { 116 return baseEntry.isDirectory(); 117 } 118 119 public String toString() { 120 return baseEntry.toString(); 121 } 122 123 public int hashCode() { 124 return baseEntry.hashCode(); 125 } 126 127 public Object clone() { 128 return new NestedJarEntry(getName(), baseEntry, manifest); 129 } 130 }