/*
* Copyright 2008-present MongoDB, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.bson;
Enumeration of all the BSON types currently supported.
Since: 3.0
/**
* Enumeration of all the BSON types currently supported.
*
* @since 3.0
*/
public enum BsonType {
Not a real BSON type. Used to signal the end of a document.
/**
* Not a real BSON type. Used to signal the end of a document.
*/
END_OF_DOCUMENT(0x00),
// no values of this type exist it marks the end of a document
A BSON double.
/**
* A BSON double.
*/
DOUBLE(0x01),
A BSON string.
/**
* A BSON string.
*/
STRING(0x02),
A BSON document.
/**
* A BSON document.
*/
DOCUMENT(0x03),
A BSON array.
/**
* A BSON array.
*/
ARRAY(0x04),
BSON binary data.
/**
* BSON binary data.
*/
BINARY(0x05),
A BSON undefined value.
/**
* A BSON undefined value.
*/
UNDEFINED(0x06),
A BSON ObjectId.
/**
* A BSON ObjectId.
*/
OBJECT_ID(0x07),
A BSON bool.
/**
* A BSON bool.
*/
BOOLEAN(0x08),
A BSON DateTime.
/**
* A BSON DateTime.
*/
DATE_TIME(0x09),
A BSON null value.
/**
* A BSON null value.
*/
NULL(0x0a),
A BSON regular expression.
/**
* A BSON regular expression.
*/
REGULAR_EXPRESSION(0x0b),
A BSON regular expression.
/**
* A BSON regular expression.
*/
DB_POINTER(0x0c),
BSON JavaScript code.
/**
* BSON JavaScript code.
*/
JAVASCRIPT(0x0d),
A BSON symbol.
/**
* A BSON symbol.
*/
SYMBOL(0x0e),
BSON JavaScript code with a scope (a set of variables with values).
/**
* BSON JavaScript code with a scope (a set of variables with values).
*/
JAVASCRIPT_WITH_SCOPE(0x0f),
A BSON 32-bit integer.
/**
* A BSON 32-bit integer.
*/
INT32(0x10),
A BSON timestamp.
/**
* A BSON timestamp.
*/
TIMESTAMP(0x11),
A BSON 64-bit integer.
/**
* A BSON 64-bit integer.
*/
INT64(0x12),
A BSON Decimal128.
Since: 3.4
/**
* A BSON Decimal128.
*
* @since 3.4
*/
DECIMAL128(0x13),
A BSON MinKey value.
/**
* A BSON MinKey value.
*/
MIN_KEY(0xff),
A BSON MaxKey value.
/**
* A BSON MaxKey value.
*/
MAX_KEY(0x7f);
private static final BsonType[] LOOKUP_TABLE = new BsonType[MIN_KEY.getValue() + 1];
private final int value;
static {
for (final BsonType cur : BsonType.values()) {
LOOKUP_TABLE[cur.getValue()] = cur;
}
}
BsonType(final int value) {
this.value = value;
}
Get the int value of this BSON type.
Returns: the int value of this type.
/**
* Get the int value of this BSON type.
*
* @return the int value of this type.
*/
public int getValue() {
return value;
}
Gets the BsonType
that corresponds to the given int value. Params: - value – the int value of the desired BSON type.
Returns: the corresponding BsonType
/**
* Gets the {@code BsonType} that corresponds to the given int value.
*
* @param value the int value of the desired BSON type.
* @return the corresponding {@code BsonType}
*/
public static BsonType findByValue(final int value) {
return LOOKUP_TABLE[value & 0xFF];
}
Returns whether this type is some sort of containing type, e.g. a document or array.
Returns: true if this is some sort of containing type rather than a primitive value
/**
* Returns whether this type is some sort of containing type, e.g. a document or array.
*
* @return true if this is some sort of containing type rather than a primitive value
*/
public boolean isContainer() {
return this == DOCUMENT || this == ARRAY;
}
}