/* * Copyright (C) 2009 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.dexdeps; public class MethodRef { private String mDeclClass, mReturnType, mMethodName; private String[] mArgTypes; /** * Initializes a new field reference. */ public MethodRef(String declClass, String[] argTypes, String returnType, String methodName) { mDeclClass = declClass; mArgTypes = argTypes; mReturnType = returnType; mMethodName = methodName; } /** * Gets the name of the method's declaring class. */ public String getDeclClassName() { return mDeclClass; } /** * Gets the method's descriptor. */ public String getDescriptor() { return descriptorFromProtoArray(mArgTypes, mReturnType); } /** * Gets the method's name. */ public String getName() { return mMethodName; } /** * Gets an array of method argument types. */ public String[] getArgumentTypeNames() { return mArgTypes; } /** * Gets the method's return type. Examples: "Ljava/lang/String;", "[I". */ public String getReturnTypeName() { return mReturnType; } /** * Returns the method descriptor, given the argument and return type * prototype strings. */ private static String descriptorFromProtoArray(String[] protos, String returnType) { StringBuilder builder = new StringBuilder(); builder.append("("); for (int i = 0; i < protos.length; i++) { builder.append(protos[i]); } builder.append(")"); builder.append(returnType); return builder.toString(); } }