01: /*
02: * PublicTester.java --
03: *
04: * This file defines a public class and a package protected class.
05: * These classes are used in the tcljava/FuncSig.test to test the
06: * correctness of FuncSig.getAccessibleMethods.
07: *
08: * Copyright (c) 1997 by Sun Microsystems, Inc.
09: *
10: * See the file "license.terms" for information on usage and redistribution
11: * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
12: *
13: * RCS: @(#) $Id: PublicTester.java,v 1.3 2002/12/27 14:33:20 mdejong Exp $
14: */
15:
16: package tests.invoke;
17:
18: /*
19: * This class is public so it can be created using the java::new command.
20: * All of its public methods can also be called from Tcl.
21: */
22:
23: public class PublicTester implements IntC {
24:
25: public String getStringC() {
26: return "implements IntC.getStringC()";
27: }
28:
29: public String publicFunc() {
30: return "access ok: Tester.publicFunc()";
31: }
32:
33: public static PublicTester getCNonPublicTester() {
34: return (PublicTester) new NonPublicTester();
35: }
36:
37: public static NonPublicTester getNonPublicTester() {
38: return new NonPublicTester();
39: }
40:
41: public NonPublicTester getNonPublicTesterI() {
42: return new NonPublicTester();
43: }
44:
45: String noAccess() {
46: return "can't call this one";
47: }
48:
49: public static NonPublicTester nptf = null;
50:
51: }
52:
53: /*
54: * This class is not public so it cannot be created using the java::new
55: * command. However, we can get an instance of this class via
56: * PublicTester.getNonPublicTester and we should be able to call all of
57: * it methods that are in the public API.
58: */
59:
60: class NonPublicTester extends PublicTester implements IntA {
61:
62: /*
63: * Can call this method because it was first declared in a public
64: * class.
65: */
66:
67: public String publicFunc() {
68: return "access ok: NonPublicTester.publicFunc() overrides Tester.publicFunc()";
69: }
70:
71: /*
72: * Can't call this method because it's not public.
73: */
74:
75: String noAccess2() {
76: return "can't call this one, either";
77: }
78:
79: /*
80: * Can't call this method because the classes declaring class
81: * (NonPublicTester) is not public.
82: */
83:
84: public String noAccess3() {
85: return "can't call this one, either";
86: }
87:
88: public String getStringA() {
89: return "access ok: NonPublicTester.getStringA() implements IntA.getStringA()";
90: }
91:
92: public String getStringC() {
93: return "access ok: NonPublicTester.getStringC() implements IntC.getStringC()";
94: }
95:
96: }
|