public Iterator<?> getBshIterator(final Object obj) {
        if (obj == null)
            return this.emptyIt();
        if (obj instanceof Primitive)
            return this.getBshIterator(Primitive.unwrap(obj));
        if (obj.getClass().isArray())
            return this.arrayIt(obj);
        if (obj instanceof Iterable)
            return this.getBshIterator((Iterable<?>) obj);
        if (obj instanceof Iterator)
            return this.getBshIterator((Iterator<?>) obj);
        if (obj instanceof Enumeration)
            return this.getBshIterator((Enumeration<?>) obj);
        if (obj instanceof CharSequence)
            return this.getBshIterator((CharSequence) obj);
        if (obj instanceof Number)
            return this.getBshIterator((Number) obj);
        if (obj instanceof Character)
            return this.getBshIterator((Character) obj);
        if (obj instanceof String)
            return this.getBshIterator((String) obj);
        return this.reflectNames(obj).iterator();
    }
public Iterator < ? > getBshIterator ( final Object obj ) { if ( obj == null ) return this . emptyIt ( ) ; if ( obj instanceof Primitive ) return this . getBshIterator ( Primitive . unwrap ( obj ) ) ; if ( obj . getClass ( ) . isArray ( ) ) return this . arrayIt ( obj ) ; if ( obj instanceof Iterable ) return this . getBshIterator ( ( Iterable < ? > ) obj ) ; if ( obj instanceof Iterator ) return this . getBshIterator ( ( Iterator < ? > ) obj ) ; if ( obj instanceof Enumeration ) return this . getBshIterator ( ( Enumeration < ? > ) obj ) ; if ( obj instanceof CharSequence ) return this . getBshIterator ( ( CharSequence ) obj ) ; if ( obj instanceof Number ) return this . getBshIterator ( ( Number ) obj ) ; if ( obj instanceof Character ) return this . getBshIterator ( ( Character ) obj ) ; if ( obj instanceof String ) return this . getBshIterator ( ( String ) obj ) ; return this . reflectNames ( obj ) . iterator ( ) ; }
Inspect the supplied object and cast type to delegates.
@param obj the value to iterate of unknown type.
@return the bsh iterator