| /* | |
| * Copyright (C) 2011 The Android Open Source Project | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. | |
| * You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software | |
| * distributed under the License is distributed on an "AS IS" BASIS, | |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| * See the License for the specific language governing permissions and | |
| * limitations under the License. | |
| */ | |
| package com.android.dex; | |
| public final class ClassData { | |
| private final Field[] staticFields; | |
| private final Field[] instanceFields; | |
| private final Method[] directMethods; | |
| private final Method[] virtualMethods; | |
| public ClassData(Field[] staticFields, Field[] instanceFields, | |
| Method[] directMethods, Method[] virtualMethods) { | |
| this.staticFields = staticFields; | |
| this.instanceFields = instanceFields; | |
| this.directMethods = directMethods; | |
| this.virtualMethods = virtualMethods; | |
| } | |
| public Field[] getStaticFields() { | |
| return staticFields; | |
| } | |
| public Field[] getInstanceFields() { | |
| return instanceFields; | |
| } | |
| public Method[] getDirectMethods() { | |
| return directMethods; | |
| } | |
| public Method[] getVirtualMethods() { | |
| return virtualMethods; | |
| } | |
| public Field[] allFields() { | |
| Field[] result = new Field[staticFields.length + instanceFields.length]; | |
| System.arraycopy(staticFields, 0, result, 0, staticFields.length); | |
| System.arraycopy(instanceFields, 0, result, staticFields.length, instanceFields.length); | |
| return result; | |
| } | |
| public Method[] allMethods() { | |
| Method[] result = new Method[directMethods.length + virtualMethods.length]; | |
| System.arraycopy(directMethods, 0, result, 0, directMethods.length); | |
| System.arraycopy(virtualMethods, 0, result, directMethods.length, virtualMethods.length); | |
| return result; | |
| } | |
| public static class Field { | |
| private final int fieldIndex; | |
| private final int accessFlags; | |
| public Field(int fieldIndex, int accessFlags) { | |
| this.fieldIndex = fieldIndex; | |
| this.accessFlags = accessFlags; | |
| } | |
| public int getFieldIndex() { | |
| return fieldIndex; | |
| } | |
| public int getAccessFlags() { | |
| return accessFlags; | |
| } | |
| } | |
| public static class Method { | |
| private final int methodIndex; | |
| private final int accessFlags; | |
| private final int codeOffset; | |
| public Method(int methodIndex, int accessFlags, int codeOffset) { | |
| this.methodIndex = methodIndex; | |
| this.accessFlags = accessFlags; | |
| this.codeOffset = codeOffset; | |
| } | |
| public int getMethodIndex() { | |
| return methodIndex; | |
| } | |
| public int getAccessFlags() { | |
| return accessFlags; | |
| } | |
| public int getCodeOffset() { | |
| return codeOffset; | |
| } | |
| } | |
| } |