| |
| import director_protected.*; |
| import java.lang.reflect.*; |
| |
| public class director_protected_runme { |
| |
| static { |
| try { |
| System.loadLibrary("director_protected"); |
| } catch (UnsatisfiedLinkError e) { |
| System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e); |
| System.exit(1); |
| } |
| } |
| |
| public static void main(String argv[]) { |
| |
| Bar b = new Bar(); |
| Foo f = b.create(); |
| director_protected_FooBar fb = new director_protected_FooBar(); |
| director_protected_FooBar2 fb2 = new director_protected_FooBar2(); |
| director_protected_FooBar3 fb3 = new director_protected_FooBar3(); |
| |
| { |
| String s = fb.used(); |
| if (!s.equals("Foo::pang();Bar::pong();Foo::pong();director_protected_FooBar::ping();")) |
| throw new RuntimeException( "bad director_protected_FooBar::used" ); |
| } |
| |
| { |
| String s = fb2.used(); |
| if (!s.equals("director_protected_FooBar2::pang();Bar::pong();Foo::pong();director_protected_FooBar2::ping();")) |
| throw new RuntimeException( "bad director_protected_FooBar2::used" ); |
| } |
| |
| { |
| String s = b.pong(); |
| if (!s.equals("Bar::pong();Foo::pong();Bar::ping();")) |
| throw new RuntimeException( "bad Bar::pong" ); |
| } |
| |
| { |
| String s = f.pong(); |
| if (!s.equals("Bar::pong();Foo::pong();Bar::ping();")) |
| throw new RuntimeException(" bad Foo::pong" ); |
| } |
| |
| { |
| String s3 = fb.pong(); |
| if (!s3.equals("Bar::pong();Foo::pong();director_protected_FooBar::ping();")) |
| throw new RuntimeException(" bad director_protected_FooBar::pong" ); |
| } |
| |
| try { |
| |
| Method method = b.getClass().getDeclaredMethod("ping", (java.lang.Class[])null); |
| if ( !Modifier.isProtected(method.getModifiers()) ) |
| throw new RuntimeException("Bar::ping should be protected" ); |
| |
| method = f.getClass().getDeclaredMethod("ping", (java.lang.Class[])null); |
| if ( !Modifier.isProtected(method.getModifiers()) ) |
| throw new RuntimeException("Foo::ping should be protected" ); |
| |
| method = b.getClass().getDeclaredMethod("cheer", (java.lang.Class[])null); |
| if ( !Modifier.isProtected(method.getModifiers()) ) |
| throw new RuntimeException("Bar::cheer should be protected" ); |
| |
| method = f.getClass().getDeclaredMethod("cheer", (java.lang.Class[])null); |
| if ( !Modifier.isProtected(method.getModifiers()) ) |
| throw new RuntimeException("Foo::cheer should be protected" ); |
| |
| } catch (NoSuchMethodException n) { |
| throw new RuntimeException(n); |
| } catch (SecurityException s) { |
| throw new RuntimeException("SecurityException caught. Test failed."); |
| } |
| |
| if (!fb3.cheer().equals("director_protected_FooBar3::cheer();")) |
| throw new RuntimeException("bad fb3::cheer"); |
| |
| if (!fb2.callping().equals("director_protected_FooBar2::ping();")) |
| throw new RuntimeException("bad fb2.callping"); |
| |
| if (!fb2.callcheer().equals("director_protected_FooBar2::pang();Bar::pong();Foo::pong();director_protected_FooBar2::ping();")) |
| throw new RuntimeException("bad fb2.callcheer"); |
| |
| if (!fb3.callping().equals("Bar::ping();")) |
| throw new RuntimeException("bad fb3.callping"); |
| |
| if (!fb3.callcheer().equals("director_protected_FooBar3::cheer();")) |
| throw new RuntimeException("bad fb3.callcheer"); |
| } |
| } |
| |
| class director_protected_FooBar extends Bar { |
| public String ping() { |
| return "director_protected_FooBar::ping();"; |
| } |
| } |
| |
| class director_protected_FooBar2 extends Bar { |
| public String ping() { |
| return "director_protected_FooBar2::ping();"; |
| } |
| public String pang() { |
| return "director_protected_FooBar2::pang();"; |
| } |
| } |
| |
| class director_protected_FooBar3 extends Bar { |
| public String cheer() { |
| return "director_protected_FooBar3::cheer();"; |
| } |
| } |
| |