15d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao/* 25d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * Copyright (C) 2008 The Android Open Source Project 35d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * 45d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * Licensed under the Apache License, Version 2.0 (the "License"); 55d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * you may not use this file except in compliance with the License. 65d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * You may obtain a copy of the License at 75d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * 85d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * http://www.apache.org/licenses/LICENSE-2.0 95d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * 105d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * Unless required by applicable law or agreed to in writing, software 115d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * distributed under the License is distributed on an "AS IS" BASIS, 125d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * See the License for the specific language governing permissions and 145d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * limitations under the License. 155d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao */ 165d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 175d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao/** 185d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * Try different kinds of method calls. 195d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao */ 205d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhaopublic class MethodCall extends MethodCallBase { 215d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao MethodCall() { 225d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao super(); 235d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao System.out.println(" MethodCall ctor"); 245d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao } 255d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 265d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao /* overridden method */ 275d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao int tryThing() { 285d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao int val = super.tryThing(); 29795d78f4d04c8d007bf2bdf2ed4131379bcf19c7jeffhao Main.assertTrue(val == 7); 305d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao return val; 315d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao } 325d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 335d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao /* do-nothing private instance method */ 345d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao private void directly() {} 355d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 365d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao /* 375d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * Function with many arguments. 385d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao */ 395d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao static void manyArgs(int a0, long a1, int a2, long a3, int a4, long a5, 405d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao int a6, int a7, double a8, float a9, double a10, short a11, int a12, 415d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao char a13, int a14, int a15, byte a16, boolean a17, int a18, int a19, 425d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao long a20, long a21, int a22, int a23, int a24, int a25, int a26, 435d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao String[][] a27, String[] a28, String a29) 445d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao { 455d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao System.out.println("MethodCalls.manyArgs"); 46795d78f4d04c8d007bf2bdf2ed4131379bcf19c7jeffhao Main.assertTrue(a0 == 0); 47795d78f4d04c8d007bf2bdf2ed4131379bcf19c7jeffhao Main.assertTrue(a9 > 8.99 && a9 < 9.01); 48795d78f4d04c8d007bf2bdf2ed4131379bcf19c7jeffhao Main.assertTrue(a16 == -16); 49795d78f4d04c8d007bf2bdf2ed4131379bcf19c7jeffhao Main.assertTrue(a25 == 25); 50795d78f4d04c8d007bf2bdf2ed4131379bcf19c7jeffhao Main.assertTrue(a29.equals("twenty nine")); 515d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao } 525d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 535d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao public static void run() { 545d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao MethodCall inst = new MethodCall(); 555d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 565d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao MethodCallBase base = inst; 575d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao base.tryThing(); 585d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao inst.tryThing(); 595d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 605d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao inst = null; 615d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao try { 625d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao inst.directly(); 63795d78f4d04c8d007bf2bdf2ed4131379bcf19c7jeffhao Main.assertTrue(false); 645d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao } catch (NullPointerException npe) { 655d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao // good 665d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao } 675d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 685d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao manyArgs(0, 1L, 2, 3L, 4, 5L, 6, 7, 8.0, 9.0f, 10.0, (short)11, 12, 695d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao (char)13, 14, 15, (byte)-16, true, 18, 19, 20L, 21L, 22, 23, 24, 705d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 25, 26, null, null, "twenty nine"); 715d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao } 725d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao} 735d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 745d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhaoclass MethodCallBase { 755d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao MethodCallBase() { 765d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao System.out.println(" MethodCallBase ctor"); 775d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao } 785d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 795d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao int tryThing() { 805d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao return 7; 815d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao } 825d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao} 83