public class StringElement extends AbstractElement
Modifier and Type | Field and Description |
---|---|
static ElementType |
TYPE
The BSON type for a string.
|
ELEMENT_TYPE
Constructor and Description |
---|
StringElement(String name,
String value)
Constructs a new
StringElement . |
StringElement(String name,
String value,
long size)
Constructs a new
StringElement . |
Modifier and Type | Method and Description |
---|---|
void |
accept(Visitor visitor)
Accepts the visitor and calls the
Visitor.visitString(java.lang.String, java.lang.String) method. |
int |
compareTo(Element otherElement) |
boolean |
equals(Object object)
Determines if the passed object is of this same type as this object and
if so that its fields are equal.
|
ElementType |
getType()
Returns the type for the BSON type.
|
String |
getValue()
Returns the BSON string value.
|
String |
getValueAsObject()
Returns the value for BSON element as a Java
Object type. |
String |
getValueAsString()
Returns the value for BSON element as a Java
String . |
int |
hashCode()
Computes a reasonable hash code.
|
StringElement |
withName(String name)
Creates a new element with the same type and value as this element but
with the specified name.
|
asElement, find, find, findFirst, findFirst, getName, nullSafeEquals, size, toString
public static final ElementType TYPE
public StringElement(String name, String value)
StringElement
.name
- The name for the BSON string.value
- The BSON string value.IllegalArgumentException
- If the name
or value
is null
.public StringElement(String name, String value, long size)
StringElement
.name
- The name for the BSON string.value
- The BSON string value.size
- The size of the element when encoded in bytes. If not known
then use the
StringElement(String, String)
constructor instead.IllegalArgumentException
- If the name
or value
is null
.public void accept(Visitor visitor)
Visitor.visitString(java.lang.String, java.lang.String)
method.visitor
- The visitor for the element.Element.accept(Visitor)
public int compareTo(Element otherElement)
Overridden to compare the elements based on the tuple (name, type, value).
Overridden to compare the elements based on the tuple (name, type). Derived classes are responsible for the value portion of the full comparison.
Overridden to compare the string values if the base class comparison is equals.
Note that for MongoDB SymbolElement
and StringElement
will return equal based on the type. Care is taken here to make sure that
the values return the same value regardless of comparison order.
Note: Comparison of strings in MongoDB does not use a collator. This class emulates the MongoDB behavior and orders the string elements based on the UTF-8 encoding of the strings.
compareTo
in interface Element
compareTo
in interface Comparable<Element>
compareTo
in class AbstractElement
public boolean equals(Object object)
equals
in class AbstractElement
object
- The object to compare to.Object.equals(java.lang.Object)
public ElementType getType()
public String getValue()
public String getValueAsObject()
Object
type.
Automatic conversion from the Object-ified value to an element is
provided via the DocumentBuilder.add(String, Object)
method. Not
all element types will be successfully converted to the same element
duing a Element-->Object value-->Element conversion. This cases are noted
in the appropriate sub-type's JavaDoc.
Sub-types will also overload this method with the appropriate type
returned. e.g., The
getValueAsObject()
method signature returns a String
.
Returns the String
value.
Object
type.public String getValueAsString()
String
. Automatic
conversion from the string value back to an Element is not provided.
Generally the string returned will be the expected value. As an example
for a LongElement with the value 101 the returned string will be "101".
In those cases where there is not canonical form for the value (e.g., a
TimestampElement
the returned
string will match the value when converted to JSON by the
JsonSerializationVisitor
. For a TimestampElement
that is
a string of the form "ISODate('1970-01-01T00:00:00.000+0000')".
Uses the JsonSerializationVisitor
to encode the value. In some
cases it will be more efficient to override this method with a more
straight forward conversion.
Returns the String
value.
getValueAsString
in interface Element
getValueAsString
in class AbstractElement
String
.public int hashCode()
hashCode
in class AbstractElement
public StringElement withName(String name)
Returns a new StringElement
.
name
- The new name for the element.Copyright © 2011–2014 Allanbank Consulting, Inc.. All rights reserved.