package me.xdrop.ensurej;

public class ObjectHandler<T extends ParamCheckFailedException> extends Handler<T, ObjectHandler<T>> {

    private Object obj;

    public ObjectHandler(Object obj) {
        this.obj = obj;
    }

    public ResultEval<T, ObjectHandler<T>> isNotNull(){
        if (shortCircuit()) return getShortCircuit();

        return result(obj != null, "Object was null");

    }

    public ResultEval<T, ObjectHandler<T>> isNull(){
        if (shortCircuit()) return getShortCircuit();

        return result(obj == null, "Object wasn't null");

    }

    public ResultEval<T, ObjectHandler<T>> equalsTo(Object other){
        if (shortCircuit()) return getShortCircuit();

        return result(obj.equals(other), "Objects not equal");

    }

    public ResultEval<T, ObjectHandler<T>> instanceOf(Class<?> clazz){
        if (shortCircuit()) return getShortCircuit();

        return result(obj.getClass().isInstance(clazz), "Object not instance of other.");

    }

}

@@ -211,32 +211,115 @@
 j = obj;%0A    %7D%0A%0A
+    /**%0A     * Checks whether the object is not null%0A     *%0A     * @return%0A     */%0A
     public Resul
@@ -350,32 +350,32 @@
 %3E%3E isNotNull()%7B%0A
-
         if (shor
@@ -468,32 +468,104 @@
 null%22);%0A%0A    %7D%0A%0A
+    /**%0A     * Checks whether the object is null%0A     * @return%0A     */%0A
     public Resul
@@ -714,32 +714,208 @@
 null%22);%0A%0A    %7D%0A%0A
+    /**%0A     * Checks whether the source object equals() the other object%0A     *%0A     * @param other Tested for equality using %7B@code obj.equals(other)%7D%0A     * @return%0A     */%0A
     public Resul
@@ -1087,24 +1087,236 @@
 %22);%0A%0A    %7D%0A%0A
+    /**%0A     * Checks whether the source object is an instance of the class,%0A     * described by the received class argument.%0A     *%0A     * @param clazz The class argument to check against%0A     * @return%0A     */%0A
     public R

Add JavaDoc