public interface Document extends Serializable
Modifier and Type | Interface and Description |
---|---|
static interface |
Document.Field |
static interface |
Document.ValueTransformer
A component that can transform field values, via
with(ValueTransformer) . |
Modifier and Type | Method and Description |
---|---|
Document |
clone()
Obtain a clone of this document.
|
boolean |
containsAll(Document document)
Checks if this object contains all of the fields in the supplied document.
|
boolean |
containsField(String name)
Checks if this object contains a field with the given name.
|
Editor |
edit(boolean clone)
Obtains an editor for the supplied document.
|
EditableDocument |
editable()
Returns an editable view of the given document.
|
Iterable<Document.Field> |
fields()
Obtain an iterator over the
Document.Field s in this object. |
Object |
get(String name)
Gets the value in this document for the given field name.
|
List<?> |
getArray(String name)
Get the array value in this document for the given field name.
|
Binary |
getBinary(String name)
Get the
Binary value in this document for the given field name. |
Boolean |
getBoolean(String name)
Get the boolean value in this document for the given field name.
|
boolean |
getBoolean(String name,
boolean defaultValue)
Get the boolean value in this document for the given field name.
|
Code |
getCode(String name)
Get the
Code value in this document for the given field name. |
CodeWithScope |
getCodeWithScope(String name)
Get the
CodeWithScope value in this document for the given field name. |
Document |
getDocument(String name)
Get the document value in this document for the given field name.
|
Double |
getDouble(String name)
Get the double value in this document for the given field name.
|
double |
getDouble(String name,
double defaultValue)
Get the double value in this document for the given field name.
|
Integer |
getInteger(String name)
Get the integer value in this document for the given field name.
|
int |
getInteger(String name,
int defaultValue)
Get the integer value in this document for the given field name.
|
Long |
getLong(String name)
Get the integer value in this document for the given field name.
|
long |
getLong(String name,
long defaultValue)
Get the long value in this document for the given field name.
|
MaxKey |
getMaxKey(String name)
Get the
MaxKey value in this document for the given field name. |
MinKey |
getMinKey(String name)
Get the
MinKey value in this document for the given field name. |
Number |
getNumber(String name)
Get the number value in this document for the given field name.
|
Number |
getNumber(String name,
Number defaultValue)
Get the number value in this document for the given field name.
|
ObjectId |
getObjectId(String name)
Get the
ObjectId value in this document for the given field name. |
Pattern |
getPattern(String name)
Get the
Pattern value in this document for the given field name. |
String |
getString(String name)
Get the string value in this document for the given field name.
|
String |
getString(String name,
String defaultValue)
Get the string value in this document for the given field name.
|
Symbol |
getSymbol(String name)
Get the
Symbol value in this document for the given field name. |
int |
getType(String name)
Get the
Bson.Type constant that describes the type of value for the given field name. |
UUID |
getUuid(String name)
Get the
UUID value in this document for the given field name. |
UUID |
getUuid(String name,
UUID defaultValue)
Get the
UUID value in this document for the given field name. |
boolean |
isEmpty()
Return whether this document contains no fields and is therefore empty.
|
boolean |
isNull(String name)
Determine whether this object has a pair with the given the name and the value is null.
|
boolean |
isNullOrMissing(String name)
Determine whether this object has a pair with the given the name and the value is null, or if this object has no field with
the given name.
|
Set<String> |
keySet()
Returns this object's fields' names
|
int |
size()
Return the number of name-value pairs in this object.
|
Map<String,?> |
toMap()
Returns a map representing this BSONObject.
|
Document |
with(Document.ValueTransformer transformer)
Obtain a clone of this document, but with the field values transformed using the supplied
Document.ValueTransformer . |
Document |
with(Map<String,Object> changedFields)
Obtain a clone of this document, but with the supplied fields replaced.
|
Document |
with(String fieldName,
Object value)
Obtain a clone of this document, but with the supplied fields replaced.
|
Document |
withVariablesReplaced(Properties properties)
Obtain a clone of this document, but with all variables in string field values replaced with the referenced values from the
supplied properties.
|
Document |
withVariablesReplacedWithSystemProperties()
Obtain a clone of this document, but with all variables in string field values replaced with the referenced values from the
System properties.
|
Object get(String name)
name
- The name of the pairBoolean getBoolean(String name)
name
- The name of the pairboolean getBoolean(String name, boolean defaultValue)
name
- The name of the pairdefaultValue
- the default value to return if there is no such pair or if the value is not a booleandefaultValue
if there is no such pair or if the value is not a
booleanInteger getInteger(String name)
name
- The name of the pairint getInteger(String name, int defaultValue)
name
- The name of the pairdefaultValue
- the default value to return if there is no such pair or if the value is not a integerdefaultValue
if there is no such pair or if the value is not a
integerLong getLong(String name)
name
- The name of the pairlong getLong(String name, long defaultValue)
name
- The name of the pairdefaultValue
- the default value to return if there is no such pair or if the value is not a long valuedefaultValue
if there is no such pair or if the value is not a long
valueDouble getDouble(String name)
name
- The name of the pairdouble getDouble(String name, double defaultValue)
name
- The name of the pairdefaultValue
- the default value to return if there is no such pair or if the value is not a doubledefaultValue
if there is no such pair or if the value is not a
doubleNumber getNumber(String name)
name
- The name of the pairNumber getNumber(String name, Number defaultValue)
name
- The name of the pairdefaultValue
- the default value to return if there is no such pair or if the value is not a numberdefaultValue
if there is no such pair or if the value is not a
numberString getString(String name)
Symbol
.name
- The name of the pairString getString(String name, String defaultValue)
Symbol
.name
- The name of the pairdefaultValue
- the default value to return if there is no such pair or if the value is not a stringdefaultValue
if there is no such pair or if the value is not a
stringList<?> getArray(String name)
name
- The name of the pairDocument getDocument(String name)
name
- The name of the pairboolean isNull(String name)
this.get(name) instanceof Null;
name
- The name of the pairtrue
if the field has been set to a Null
value, or false otherwiseisNullOrMissing(String)
boolean isNullOrMissing(String name)
Null.matches(this.get(name));
name
- The name of the pairtrue
if the field value for the name is null or if there is no such field.isNull(String)
MaxKey getMaxKey(String name)
MaxKey
value in this document for the given field name.MinKey getMinKey(String name)
MinKey
value in this document for the given field name.CodeWithScope getCodeWithScope(String name)
CodeWithScope
value in this document for the given field name.name
- The name of the pairCodeWithScope
field value, if found, or null if there is no such pair or if the value is not a
CodeWithScope
ObjectId getObjectId(String name)
ObjectId
value in this document for the given field name.Binary getBinary(String name)
Binary
value in this document for the given field name.Symbol getSymbol(String name)
Symbol
value in this document for the given field name.Pattern getPattern(String name)
Pattern
value in this document for the given field name.UUID getUuid(String name, UUID defaultValue)
UUID
value in this document for the given field name.name
- The name of the pairdefaultValue
- the default value to return if there is no such pair or if the value is not a stringUUID
field value if found, or defaultValue
if there is no such pair or if the value is not
a UUID (or a string that is convertable from a UUID)int getType(String name)
Bson.Type
constant that describes the type of value for the given field name.name
- The name of the pairBson.Type
constant describing the value, or -1 if there is no field with the supplied nameIterable<Document.Field> fields()
Document.Field
s in this object.boolean containsField(String name)
name
- The name of the pair for which to checkboolean containsAll(Document document)
document
- The document with the fields that should be in this documentSet<String> keySet()
int size()
boolean isEmpty()
Document clone()
Document with(Map<String,Object> changedFields)
changedFields
- the fields that should be changed; may be nullDocument with(String fieldName, Object value)
fieldName
- the name of the file that should be changed; may be nullvalue
- the new value for the fieldDocument with(Document.ValueTransformer transformer)
Document.ValueTransformer
.transformer
- the transformer that should be used to transform each field value; may not be nullDocument withVariablesReplaced(Properties properties)
Variables may appear anywhere within a string value, and multiple variables can be used within the same value. Variables take the form:
variable := '${' variableNames [ ':' defaultValue ] '}' variableNames := variableName [ ',' variableNames ] variableName := /* any characters except ',' and ':' and '}' defaultValue := /* any characters exceptNote that variableName is the name used to look up the
Properties
property.
Notice that the syntax supports multiple variables. The logic will process the variables from let to right,
until an existing System property is found. And at that point, it will stop and will not attempt to find values for the
other variables.
properties
- the properties keyed by variable namewithVariablesReplacedWithSystemProperties()
,
with(ValueTransformer)
,
SchemaLibrary.convertValues(Document, String)
Document withVariablesReplacedWithSystemProperties()
Variables may appear anywhere within a string value, and multiple variables can be used within the same value. Variables take the form:
variable := '${' variableNames [ ':' defaultValue ] '}' variableNames := variableName [ ',' variableNames ] variableName := /* any characters except ',' and ':' and '}' defaultValue := /* any characters exceptNote that variableName is the name used to look up a System property via
System.getProperty(String)
.
Notice that the syntax supports multiple variables. The logic will process the variables from let to right,
until an existing System property is found. And at that point, it will stop and will not attempt to find values for the
other variables.
Because only string values can contain variables, the resulting values are left as strings. This may not be valid according
to the document's JSON Schema, so see SchemaLibrary.convertValues(Document, String)
to convert the string values
after variable substitution into the expected non-string types.
withVariablesReplaced(Properties)
,
with(ValueTransformer)
,
SchemaLibrary.convertValues(Document, String)
Editor edit(boolean clone)
serializable memento
that can be applied to another document.Editor
instance which can used to change the document; never null
EditableDocument editable()
EditableDocument
instance, never null
Copyright © 2008–2016 JBoss, a division of Red Hat. All rights reserved.