public Digester digest(Object obj) {
        if (obj instanceof Digestible) {
            return digest((Digestible) obj);
        }
        if (obj instanceof UUID) {
            return digest((UUID) obj);
        }
        if (obj instanceof URI) {
            return digest((URI) obj);
        }
        if (obj instanceof String) {
            return digest((String) obj);
        }
        if (obj instanceof Date) {
            return digest((Date) obj);
        }
        if (obj instanceof Integer) {
            return digest(((Integer) obj).intValue());
        }
        if (obj instanceof Long) {
            return digest(((Long) obj).longValue());
        }
        if (obj instanceof Double) {
            return digest(((Double) obj).doubleValue());
        }
        if (obj instanceof Boolean) {
            return digest(((Boolean) obj).booleanValue());
        }
        if (obj instanceof Character) {
            return digest(((Character) obj).charValue());
        }
        if (obj instanceof Short) {
            return digest(((Short) obj).intValue());
        }
        if (obj instanceof Float) {
            return digest(((Float) obj).doubleValue());
        }
        if (obj != null && obj.getClass().isArray()) {
           int sz  = java.lang.reflect.Array.getLength(obj);
           for(int i = 0; i < sz; ++i) {
               digest(java.lang.reflect.Array.get(obj, i));
           }
           return this;
        }
        // worst case
        digest(md, obj);
        return this;
    }
Updates the digest with any (serializable) object.
@param obj the object
@return this digester
standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/properties/Digester.java