001: /**
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */package org.apache.geronimo.deployment.util;
017:
018: import java.io.IOException;
019: import java.security.cert.Certificate;
020: import java.util.jar.Attributes;
021: import java.util.jar.JarEntry;
022: import java.util.jar.Manifest;
023:
024: /**
025: * @version $Rev: 476049 $ $Date: 2006-11-16 20:35:17 -0800 (Thu, 16 Nov 2006) $
026: */
027: public class NestedJarEntry extends JarEntry {
028: private final JarEntry baseEntry;
029: private final Manifest manifest;
030:
031: public NestedJarEntry(String name, JarEntry baseEntry,
032: Manifest manifest) {
033: super (name);
034: this .baseEntry = baseEntry;
035: this .manifest = manifest;
036: }
037:
038: public JarEntry getBaseEntry() {
039: return baseEntry;
040: }
041:
042: public Attributes getAttributes() throws IOException {
043: if (manifest == null) {
044: return null;
045: }
046: return manifest.getAttributes(getName());
047: }
048:
049: /**
050: * Always return null. This could be implementd by verifing the signatures
051: * in the manifest file against the actual file, but we don't need this for
052: * Geronimo.
053: * @return null
054: */
055: public Certificate[] getCertificates() {
056: return null;
057: }
058:
059: public long getTime() {
060: return baseEntry.getTime();
061: }
062:
063: public void setTime(long time) {
064: baseEntry.setTime(time);
065: }
066:
067: public long getSize() {
068: return baseEntry.getSize();
069: }
070:
071: public void setSize(long size) {
072: baseEntry.setSize(size);
073: }
074:
075: public long getCompressedSize() {
076: return baseEntry.getCompressedSize();
077: }
078:
079: public void setCompressedSize(long csize) {
080: baseEntry.setCompressedSize(csize);
081: }
082:
083: public long getCrc() {
084: return baseEntry.getCrc();
085: }
086:
087: public void setCrc(long crc) {
088: baseEntry.setCrc(crc);
089: }
090:
091: public int getMethod() {
092: return baseEntry.getMethod();
093: }
094:
095: public void setMethod(int method) {
096: baseEntry.setMethod(method);
097: }
098:
099: 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: }
|