public class ArrayElement extends AbstractElement
Modifier and Type | Field and Description |
---|---|
static ElementType |
TYPE
The BSON type for an array.
|
ELEMENT_TYPE
Constructor and Description |
---|
ArrayElement(String name,
Element... entries)
Constructs a new
ArrayElement . |
ArrayElement(String name,
List<Element> entries)
Constructs a new
ArrayElement . |
ArrayElement(String name,
List<Element> entries,
long size)
Constructs a new
ArrayElement . |
Modifier and Type | Method and Description |
---|---|
void |
accept(Visitor visitor)
Accepts the visitor and calls the
Visitor.visitArray(String, List) 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.
|
<E extends Element> |
find(Class<E> clazz,
String... nameRegexs)
Returns the elements matching the path of regular expressions.
|
<E extends Element> |
findFirst(Class<E> clazz,
String... nameRegexs)
Returns the first element matching the path of regular expressions.
|
List<Element> |
getEntries()
Returns the entries in the array.
|
ElementType |
getType()
Returns the type for the BSON type.
|
Element[] |
getValueAsObject()
Returns the value for BSON element as a Java
Object type. |
int |
hashCode()
Computes a reasonable hash code.
|
static String |
nameFor(int index)
Similar to the caching of Integer object values for a range we cache the
index names for an array's first 256 positions.
|
ArrayElement |
withName(String name)
Creates a new element with the same type and value as this element but
with the specified name.
|
asElement, find, findFirst, getName, getValueAsString, nullSafeEquals, size, toString
public static final ElementType TYPE
public ArrayElement(String name, Element... entries) throws IllegalArgumentException
ArrayElement
.name
- The name for the BSON array.entries
- The entries in the array.IllegalArgumentException
- If the name
is null
.public ArrayElement(String name, List<Element> entries) throws IllegalArgumentException
ArrayElement
.name
- The name for the BSON array.entries
- The entries in the array.IllegalArgumentException
- If the name
is null
.public ArrayElement(String name, List<Element> entries, long size) throws IllegalArgumentException
ArrayElement
.name
- The name for the BSON array.entries
- The entries in the array.size
- The size of the element when encoded in bytes. If not known
then use the ArrayElement(String, List)
constructor instead.IllegalArgumentException
- If the name
is null
.public static final String nameFor(int index)
index
- The index for the array element.public void accept(Visitor visitor)
Visitor.visitArray(String, List)
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 elements of the array if the base class comparison is equals.
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 <E extends Element> List<E> find(Class<E> clazz, String... nameRegexs)
Returns a singleton list if the nameRegexs is empty and this element's type is assignable to E. An empty list otherwise.
Searches this sub-elements for matching elements on the path and are of the right type.
find
in interface Element
find
in class AbstractElement
E
- The type of element to match.clazz
- The class of elements to match.nameRegexs
- The path of regular expressions.Element.find(java.lang.Class<E>, java.lang.String...)
public <E extends Element> E findFirst(Class<E> clazz, String... nameRegexs)
Returns a this
if the nameRegexs is empty and this element's type
is assignable to E. An empty list otherwise.
Searches this sub-elements for matching elements on the path and are of the right type.
findFirst
in interface Element
findFirst
in class AbstractElement
E
- The type of element to match.clazz
- The class of element to match.nameRegexs
- The path of regular expressions.Element.findFirst(java.lang.Class<E>, java.lang.String...)
public List<Element> getEntries()
public ElementType getType()
public Element[] 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
StringElement.getValueAsObject()
method signature returns a String
.
Returns an Element[].
Object
type.public int hashCode()
hashCode
in class AbstractElement
public ArrayElement withName(String name)
Returns a new ArrayElement
.
name
- The new name for the element.Copyright © 2011–2014 Allanbank Consulting, Inc.. All rights reserved.