samples/instanceofclass/src-api2.0/api/InstanceProvider.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 09:53:34 +0200
changeset 75 aa07c59612ac
child 191 c8a7c6621b5f
permissions -rw-r--r--
Moving class based InstanceProvider to own project
     1 
     2 package api;
     3 
     4 // BEGIN: instanceof.class.InstanceProvider2
     5 public final class InstanceProvider {
     6     private final Object instance;
     7 
     8     public InstanceProvider(Object instance) {
     9         this.instance = instance;
    10     }
    11     
    12     public Class<?> instanceClass() {
    13         return instance.getClass();
    14     }
    15     public Object instanceCreate() {
    16         return instance;
    17     }
    18     
    19     /** @since 2.0 */
    20     public boolean isInstanceOf(Class<?> c) {
    21         if (Helper.knownHowToDoItBetter()) {
    22             return Helper.computeTheResultOfIsInstanceOfInSomeBetterWay(c);
    23         } else {
    24             // fallback
    25             return c.isAssignableFrom(instanceClass());
    26         }
    27     }
    28 
    29     
    30 }
    31 // END: instanceof.class.InstanceProvider2
    32 
    33 class Helper {
    34     static boolean computeTheResultOfIsInstanceOfInSomeBetterWay(Class<?> c) {
    35         return false;
    36     }
    37     static boolean knownHowToDoItBetter() {
    38         return false;
    39     }
    40 }