18da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal/* 28da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * Copyright 2010 Google Inc. 38da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * 48da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * Licensed under the Apache License, Version 2.0 (the "License"); 58da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * you may not use this file except in compliance with the License. 68da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * You may obtain a copy of the License at 78da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * 88da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * http://www.apache.org/licenses/LICENSE-2.0 98da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * 108da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * Unless required by applicable law or agreed to in writing, software 118da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * distributed under the License is distributed on an "AS IS" BASIS, 128da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * See the License for the specific language governing permissions and 148da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * limitations under the License. 158da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal */ 168da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalpackage com.google.android.testing.mocking; 178da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 188da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal/** 198da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * Represents the contents of a Class file. 208da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * 218da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * @author swoodward@google.com (Stephen Woodward) 228da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal */ 238da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalpublic class GeneratedClassFile { 248da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal private final String className; 258da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal private final byte[] contents; 268da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 278da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal /** 288da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * @param name the fully qualified name of the class. 298da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * @param classFileContents the binary contents of the file. 308da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal */ 318da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public GeneratedClassFile(String name, byte[] classFileContents) { 328da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal className = name; 338da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal contents = classFileContents; 348da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 358da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 368da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public String getClassName() { 378da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal return className; 388da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 398da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 408da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public byte[] getContents() { 418da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal return contents; 428da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 438da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 448da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal @Override 458da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public int hashCode() { 468da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal return (this.getClass().getName() + className).hashCode(); 478da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 488da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 498da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal @Override 508da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public boolean equals(Object obj) { 518da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal return (obj instanceof GeneratedClassFile) 528da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal && className.equals(((GeneratedClassFile) obj).getClassName()); 538da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 548da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal} 55