# HG changeset patch # User Jaroslav Tulach # Date 1213430014 -7200 # Node ID aa07c59612ac8d2c8f56e0586c517e2b11ebb147 # Parent 84353f1cb4bc005b36945686fe6b7fc272ffdc2d Moving class based InstanceProvider to own project diff -r 84353f1cb4bc -r aa07c59612ac samples/instanceofclass/build.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/samples/instanceofclass/build.xml Sat Jun 14 09:53:34 2008 +0200 @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 84353f1cb4bc -r aa07c59612ac samples/instanceofclass/nbproject/project.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/samples/instanceofclass/nbproject/project.xml Sat Jun 14 09:53:34 2008 +0200 @@ -0,0 +1,80 @@ + + + org.netbeans.modules.ant.freeform + + + instanceofclass + + + + instanceofclass + + + + + . + UTF-8 + + + + java + src-api1.0 + UTF-8 + + + + java + impl + UTF-8 + + + + + build + + + clean + + + run + + + clean + build + + + + + + + src-api1.0 + + + + src-api2.0 + + + build.xml + + + + + + + + + + + + + + src-api1.0 + 1.5 + + + src-api2.0 + 1.5 + + + + diff -r 84353f1cb4bc -r aa07c59612ac samples/instanceofclass/src-api1.0/api/InstanceProvider.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/samples/instanceofclass/src-api1.0/api/InstanceProvider.java Sat Jun 14 09:53:34 2008 +0200 @@ -0,0 +1,19 @@ + +package api; + +// BEGIN: instanceof.class.InstanceProvider1 +public final class InstanceProvider { + private final Object instance; + + public InstanceProvider(Object instance) { + this.instance = instance; + } + + public Class instanceClass() { + return instance.getClass(); + } + public Object instanceCreate() { + return instance; + } +} +// END: instanceof.class.InstanceProvider1 diff -r 84353f1cb4bc -r aa07c59612ac samples/instanceofclass/src-api2.0/api/InstanceProvider.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/samples/instanceofclass/src-api2.0/api/InstanceProvider.java Sat Jun 14 09:53:34 2008 +0200 @@ -0,0 +1,40 @@ + +package api; + +// BEGIN: instanceof.class.InstanceProvider2 +public final class InstanceProvider { + private final Object instance; + + public InstanceProvider(Object instance) { + this.instance = instance; + } + + public Class instanceClass() { + return instance.getClass(); + } + public Object instanceCreate() { + return instance; + } + + /** @since 2.0 */ + public boolean isInstanceOf(Class c) { + if (Helper.knownHowToDoItBetter()) { + return Helper.computeTheResultOfIsInstanceOfInSomeBetterWay(c); + } else { + // fallback + return c.isAssignableFrom(instanceClass()); + } + } + + +} +// END: instanceof.class.InstanceProvider2 + +class Helper { + static boolean computeTheResultOfIsInstanceOfInSomeBetterWay(Class c) { + return false; + } + static boolean knownHowToDoItBetter() { + return false; + } +} \ No newline at end of file