001 /*
002 * Licensed under the Apache License, Version 2.0 (the "License");
003 * you may not use this file except in compliance with the License.
004 * You may obtain a copy of the License at
005 *
006 * http://www.apache.org/licenses/LICENSE-2.0
007 *
008 * Unless required by applicable law or agreed to in writing, software
009 * distributed under the License is distributed on an "AS IS" BASIS,
010 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
011 * See the License for the specific language governing permissions and
012 * limitations under the License.
013 */
014 package org.apache.commons.classscan.builtin;
015
016 import java.io.IOException;
017 import java.io.InputStream;
018 import java.util.jar.JarEntry;
019 import java.util.jar.JarFile;
020
021 import org.apache.commons.classscan.ClassFile;
022
023 public class JarClassFile extends JarResourceFile implements ClassFile {
024
025 public JarClassFile(JarFile jarFile, JarEntry jarEntry) {
026 super(jarFile, jarEntry);
027 }
028
029 @Override
030 public InputStream getBytes() throws IOException {
031 // TODO: prevent closing of stream?
032 return jarFile.getInputStream(jarEntry);
033 }
034
035 @Override
036 public String getClassName() {
037 String name= getFileName();
038 return ClassNameHelper.getCannonicalClassNameFromPathName(name);
039 }
040 }