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