1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/samples/instanceofclass/src-api2.0/api/InstanceProvider.java Sat Jun 14 09:53:34 2008 +0200
1.3 @@ -0,0 +1,40 @@
1.4 +
1.5 +package api;
1.6 +
1.7 +// BEGIN: instanceof.class.InstanceProvider2
1.8 +public final class InstanceProvider {
1.9 + private final Object instance;
1.10 +
1.11 + public InstanceProvider(Object instance) {
1.12 + this.instance = instance;
1.13 + }
1.14 +
1.15 + public Class<?> instanceClass() {
1.16 + return instance.getClass();
1.17 + }
1.18 + public Object instanceCreate() {
1.19 + return instance;
1.20 + }
1.21 +
1.22 + /** @since 2.0 */
1.23 + public boolean isInstanceOf(Class<?> c) {
1.24 + if (Helper.knownHowToDoItBetter()) {
1.25 + return Helper.computeTheResultOfIsInstanceOfInSomeBetterWay(c);
1.26 + } else {
1.27 + // fallback
1.28 + return c.isAssignableFrom(instanceClass());
1.29 + }
1.30 + }
1.31 +
1.32 +
1.33 +}
1.34 +// END: instanceof.class.InstanceProvider2
1.35 +
1.36 +class Helper {
1.37 + static boolean computeTheResultOfIsInstanceOfInSomeBetterWay(Class<?> c) {
1.38 + return false;
1.39 + }
1.40 + static boolean knownHowToDoItBetter() {
1.41 + return false;
1.42 + }
1.43 +}
1.44 \ No newline at end of file