CstInterfaceMethodRef.java revision 579d7739c53a2707ad711a2d2cae46d7d782f061
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copyright (C) 2007 The Android Open Source Project 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Licensed under the Apache License, Version 2.0 (the "License"); 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * you may not use this file except in compliance with the License. 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * You may obtain a copy of the License at 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * http://www.apache.org/licenses/LICENSE-2.0 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Unless required by applicable law or agreed to in writing, software 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * distributed under the License is distributed on an "AS IS" BASIS, 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * See the License for the specific language governing permissions and 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * limitations under the License. 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)package com.android.dx.rop.cst; 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Constants of type {@code CONSTANT_InterfaceMethodref_info}. 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)public final class CstInterfaceMethodRef 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) extends CstBaseMethodRef { 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * {@code null-ok;} normal {@link CstMethodRef} that corresponds to this 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * instance, if calculated 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private CstMethodRef methodRef; 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Constructs an instance. 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param definingClass {@code non-null;} the type of the defining class 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param nat {@code non-null;} the name-and-type 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public CstInterfaceMethodRef(CstType definingClass, CstNat nat) { 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) super(definingClass, nat); 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) methodRef = null; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) /** {@inheritDoc} */ 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) @Override 43 public String typeName() { 44 return "ifaceMethod"; 45 } 46 47 /** 48 * Gets a normal (non-interface) {@link CstMethodRef} that corresponds to 49 * this instance. 50 * 51 * @return {@code non-null;} an appropriate instance 52 */ 53 public CstMethodRef toMethodRef() { 54 if (methodRef == null) { 55 methodRef = new CstMethodRef(getDefiningClass(), getNat()); 56 } 57 58 return methodRef; 59 } 60} 61