bson/src/main/org/bson/AbstractBsonReader.java
protected void verifyBSONType(final String methodName, final BsonType requiredBsonType) {
        if (state == State.INITIAL || state == State.SCOPE_DOCUMENT || state == State.TYPE) {
            readBsonType();
        }
        if (state == State.NAME) {
            // ignore name
            skipName();
        }
        if (state != State.VALUE) {
            throwInvalidState(methodName, State.VALUE);
        }
        if (currentBsonType != requiredBsonType) {
            throw new BsonInvalidOperationException(format("%s can only be called when CurrentBSONType is %s, "
                                                           + "not when CurrentBSONType is %s.",
                                                           methodName, requiredBsonType, currentBsonType));
        }
    }
protected void verifyBSONType(final String methodName, final BsonType requiredBsonType) {
        if (state == State.INITIAL || state == State.SCOPE_DOCUMENT || state == State.TYPE) {
            readBsonType();
        }
        if (state == State.NAME) {
            // ignore name
            skipName();
        }
        if (state != State.VALUE) {
            throwInvalidState(methodName, State.VALUE);
        }
        if (currentBsonType != requiredBsonType) {
            throw new BsonInvalidOperationException(format("%s can only be called when CurrentBSONType is %s, "
                                                           + "not when CurrentBSONType is %s.",
                                                           methodName, requiredBsonType, currentBsonType));
        }
    }
protected void verifyBSONType ( final String methodName , final BsonType requiredBsonType ) { if ( state == State . INITIAL || state == State . SCOPE_DOCUMENT || state == State . TYPE ) { readBsonType ( ) ; } if ( state == State . NAME ) { // ignore name skipName ( ) ; } if ( state != State . VALUE ) { throwInvalidState ( methodName , State . VALUE ) ; } if ( currentBsonType != requiredBsonType ) { throw new BsonInvalidOperationException ( format ( "%s can only be called when CurrentBSONType is %s, " + "not when CurrentBSONType is %s." , methodName , requiredBsonType , currentBsonType ) ) ; } }
Verifies the current state and BSONType of the reader.

@param methodName       The name of the method calling this one.
@param requiredBsonType The required BSON type.
Verifies the current state and BSONType of the reader .