1 19 20 package edu.umd.cs.findbugs.classfile.impl; 21 22 import java.io.IOException ; 23 import java.io.InputStream ; 24 25 import edu.umd.cs.findbugs.classfile.CheckedAnalysisException; 26 import edu.umd.cs.findbugs.classfile.ClassDescriptor; 27 import edu.umd.cs.findbugs.classfile.ICodeBase; 28 import edu.umd.cs.findbugs.classfile.ICodeBaseEntry; 29 import edu.umd.cs.findbugs.classfile.InvalidClassFileFormatException; 30 import edu.umd.cs.findbugs.classfile.ResourceNotFoundException; 31 32 40 public class DelegatingCodeBaseEntry implements ICodeBaseEntry { 41 private ICodeBase frontEndCodeBase; 42 private ICodeBaseEntry delegateCodeBaseEntry; 43 44 public DelegatingCodeBaseEntry(ICodeBase frontEndCodeBase, ICodeBaseEntry delegateCodeBaseEntry) { 45 this.frontEndCodeBase = frontEndCodeBase; 46 this.delegateCodeBaseEntry = delegateCodeBaseEntry; 47 } 48 49 52 public int getNumBytes() { 53 return delegateCodeBaseEntry.getNumBytes(); 54 } 55 56 59 public String getResourceName() { 60 return delegateCodeBaseEntry.getResourceName(); 61 } 62 63 66 public InputStream openResource() throws IOException { 67 return delegateCodeBaseEntry.openResource(); 68 } 69 70 73 public ICodeBase getCodeBase() { 74 return frontEndCodeBase; 75 } 76 77 80 public ClassDescriptor getClassDescriptor() throws ResourceNotFoundException, InvalidClassFileFormatException { 81 return delegateCodeBaseEntry.getClassDescriptor(); 82 } 83 84 87 public void overrideResourceName(String resourceName) { 88 delegateCodeBaseEntry.overrideResourceName(resourceName); 89 } 90 91 94 @Override 95 public boolean equals(Object obj) { 96 if (obj == null || obj.getClass() != this.getClass()) { 97 return false; 98 } 99 DelegatingCodeBaseEntry other = (DelegatingCodeBaseEntry) obj; 100 return this.frontEndCodeBase.equals(other.frontEndCodeBase) 101 && this.delegateCodeBaseEntry.equals(other.delegateCodeBaseEntry); 102 } 103 104 107 @Override 108 public int hashCode() { 109 return 7919 * frontEndCodeBase.hashCode() + delegateCodeBaseEntry.hashCode(); 110 } 111 112 115 @Override 116 public String toString() { 117 return delegateCodeBaseEntry.toString(); 118 } 119 } 120 | Popular Tags |