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