# HG changeset patch # User Jaroslav Tulach # Date 1220015284 -7200 # Node ID 34370a93db6b4fe473d574633955cfb07a3552b1 # Parent b4404001f0e2864767a31e368c73bf2fc202058f Enabling assertions and also demonstrating that fields can be moved up to one level in the class hierarchy diff -r b4404001f0e2 -r 34370a93db6b samples/insertsuperclass/build.xml --- a/samples/insertsuperclass/build.xml Sun Aug 24 13:39:55 2008 +0200 +++ b/samples/insertsuperclass/build.xml Fri Aug 29 15:08:04 2008 +0200 @@ -3,7 +3,7 @@ - + @@ -37,8 +37,9 @@ + failonerror="true"> + + @@ -51,6 +52,7 @@ destdir="build/${version}/classes" source="1.5" target="1.5" classpath="${cp}" + debug="true" /> diff -r b4404001f0e2 -r 34370a93db6b samples/insertsuperclass/nbproject/project.xml --- a/samples/insertsuperclass/nbproject/project.xml Sun Aug 24 13:39:55 2008 +0200 +++ b/samples/insertsuperclass/nbproject/project.xml Fri Aug 29 15:08:04 2008 +0200 @@ -22,9 +22,15 @@ UTF-8 - + java - impl + src-api2.0 + UTF-8 + + + + java + src-impl UTF-8 @@ -53,8 +59,12 @@ src-api1.0 - - impl + + src-api2.0 + + + + src-impl build.xml diff -r b4404001f0e2 -r 34370a93db6b samples/insertsuperclass/src-api1.0/api/HelloFieldClass.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/samples/insertsuperclass/src-api1.0/api/HelloFieldClass.java Fri Aug 29 15:08:04 2008 +0200 @@ -0,0 +1,7 @@ +package api; + +public class HelloFieldClass { +// BEGIN: design.insert.field.superclass + public String field = "Hello"; +// END: design.insert.field.superclass +} diff -r b4404001f0e2 -r 34370a93db6b samples/insertsuperclass/src-api2.0/api/HelloFieldClass.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/samples/insertsuperclass/src-api2.0/api/HelloFieldClass.java Fri Aug 29 15:08:04 2008 +0200 @@ -0,0 +1,6 @@ +package api; + +// BEGIN: design.insert.field.superclass2 +public class HelloFieldClass extends SimpleHelloFieldClass { +} +// END: design.insert.field.superclass2 diff -r b4404001f0e2 -r 34370a93db6b samples/insertsuperclass/src-api2.0/api/SimpleHelloFieldClass.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/samples/insertsuperclass/src-api2.0/api/SimpleHelloFieldClass.java Fri Aug 29 15:08:04 2008 +0200 @@ -0,0 +1,7 @@ +package api; + +// BEGIN: design.insert.field.superclass1 +public abstract class SimpleHelloFieldClass { + public String field = "Hello"; +// FINISH: design.insert.field.superclass1 +} diff -r b4404001f0e2 -r 34370a93db6b samples/insertsuperclass/src-impl/impl/Main.java --- a/samples/insertsuperclass/src-impl/impl/Main.java Sun Aug 24 13:39:55 2008 +0200 +++ b/samples/insertsuperclass/src-impl/impl/Main.java Fri Aug 29 15:08:04 2008 +0200 @@ -2,6 +2,7 @@ package impl; import api.HelloClass; +import api.HelloFieldClass; import api.HelloInterface; /** @@ -10,15 +11,24 @@ */ public class Main { public static void main(String[] args) throws Exception { + boolean assertionsOn = false; + assert assertionsOn = true; + if (!assertionsOn) { + throw new IllegalStateException("Enable assertions!"); + } + HelloClass clazz = new ImplClass(); assert "Hello Unknown!".equals(clazz.sayHello()); assert "Hello Jaroslav!".equals(clazz.sayHelloTo("Jaroslav")); + System.err.println("Who defines sayHello(): " + clazz.getClass().getSuperclass().getMethod("sayHello")); HelloInterface iface = new ImplInterface(); assert "Hello Unknown!".equals(iface.sayHello()); assert "Hello Jaroslav!".equals(iface.sayHelloTo("Jaroslav")); + System.err.println("Who defines sayHello(): " + iface.getClass().getInterfaces()[0].getMethod("sayHello")); - System.err.println("Who defines sayHello(): " + clazz.getClass().getSuperclass().getMethod("sayHello")); - System.err.println("Who defines sayHello(): " + iface.getClass().getInterfaces()[0].getMethod("sayHello")); + HelloFieldClass fieldClass = new HelloFieldClass(); + assert "Hello".equals(fieldClass.field); + System.err.println("Who defines field: " + fieldClass.getClass().getField("field")); } }