Package | Description |
---|---|
org.apache.commons.jxpath.ri |
Reference implementation of JXPath.
|
org.apache.commons.jxpath.ri.axes |
Implementations of EvalContext used for different XPath axes (child::, parent:: etc).
|
org.apache.commons.jxpath.ri.model |
The "model" package defines APIs that are implemented
for every object model to be supported by JXPath.
|
org.apache.commons.jxpath.ri.model.beans |
Implementation of "model" APIs for JavaBeans, Dynamic Property Objects,
collections and null.
|
org.apache.commons.jxpath.ri.model.container |
Implementation of "model" APIs for Containers.
|
org.apache.commons.jxpath.ri.model.dom |
Implementation of "model" APIs for W3C DOM.
|
org.apache.commons.jxpath.ri.model.dynabeans |
Implementation of "model" APIs for Commons BeanUtils DynaBeans.
|
org.apache.commons.jxpath.ri.model.dynamic |
Implementation of "model" APIs for dynamic property objects e.g.
|
org.apache.commons.jxpath.ri.model.jdom |
Implementation of "model" APIs for JDOM (see jdom.org).
|
Modifier and Type | Field and Description |
---|---|
protected NodePointer |
NamespaceResolver.pointer
pointer
|
Modifier and Type | Method and Description |
---|---|
abstract NodePointer |
EvalContext.getCurrentNodePointer()
Returns the current context node.
|
NodePointer |
JXPathContextReferenceImpl.getVariablePointer(QName name)
Get a VariablePointer for the given variable name.
|
Modifier and Type | Method and Description |
---|---|
protected static String |
NamespaceResolver.getPrefix(NodePointer pointer,
String namespaceURI)
Find the namespace prefix for the specified namespace URI and NodePointer.
|
void |
NamespaceResolver.setNamespaceContextPointer(NodePointer pointer)
Register a namespace for the expression context.
|
Modifier and Type | Method and Description |
---|---|
static NodePointer |
SimplePathInterpreter.createNullPointer(EvalContext context,
NodePointer parent,
Step[] steps,
int currentStep)
Creates a "null pointer" that
a) represents the requested path and
b) can be used for creation of missing nodes in the path.
|
NodePointer |
SelfContext.getCurrentNodePointer() |
NodePointer |
RootContext.getCurrentNodePointer() |
NodePointer |
PredicateContext.getCurrentNodePointer() |
NodePointer |
PrecedingOrFollowingContext.getCurrentNodePointer() |
NodePointer |
ParentContext.getCurrentNodePointer() |
NodePointer |
NodeSetContext.getCurrentNodePointer() |
NodePointer |
NamespaceContext.getCurrentNodePointer() |
NodePointer |
InitialContext.getCurrentNodePointer() |
NodePointer |
DescendantContext.getCurrentNodePointer() |
NodePointer |
ChildContext.getCurrentNodePointer() |
NodePointer |
AttributeContext.getCurrentNodePointer() |
NodePointer |
AncestorContext.getCurrentNodePointer() |
static NodePointer |
SimplePathInterpreter.interpretSimpleExpressionPath(EvalContext context,
NodePointer root,
Expression[] predicates,
Step[] steps)
Interpret the steps of a simple expression path that
starts with the given root, which is the result of evaluation
of the root expression of the expression path, applies the
given predicates to it and then follows the given steps.
|
static NodePointer |
SimplePathInterpreter.interpretSimpleLocationPath(EvalContext context,
NodePointer root,
Step[] steps)
Interpret a simple path that starts with the given root and
follows the given steps.
|
Modifier and Type | Method and Description |
---|---|
static NodePointer |
SimplePathInterpreter.createNullPointer(EvalContext context,
NodePointer parent,
Step[] steps,
int currentStep)
Creates a "null pointer" that
a) represents the requested path and
b) can be used for creation of missing nodes in the path.
|
static NodePointer |
SimplePathInterpreter.interpretSimpleExpressionPath(EvalContext context,
NodePointer root,
Expression[] predicates,
Step[] steps)
Interpret the steps of a simple expression path that
starts with the given root, which is the result of evaluation
of the root expression of the expression path, applies the
given predicates to it and then follows the given steps.
|
static NodePointer |
SimplePathInterpreter.interpretSimpleLocationPath(EvalContext context,
NodePointer root,
Step[] steps)
Interpret a simple path that starts with the given root and
follows the given steps.
|
Constructor and Description |
---|
RootContext(JXPathContextReferenceImpl jxpathContext,
NodePointer pointer)
Create a new RootContext.
|
Modifier and Type | Class and Description |
---|---|
class |
VariablePointer
Pointer to a context variable.
|
Modifier and Type | Field and Description |
---|---|
protected NodePointer |
NodePointer.parent
Parent pointer
|
Modifier and Type | Method and Description |
---|---|
NodePointer |
NodePointer.createAttribute(JXPathContext context,
QName name)
Called to create a non-existing attribute
|
NodePointer |
VariablePointer.createChild(JXPathContext context,
QName name,
int index) |
NodePointer |
NodePointer.createChild(JXPathContext context,
QName name,
int index)
Called by a child pointer when it needs to create a parent object for a
non-existent collection element.
|
NodePointer |
VariablePointer.createChild(JXPathContext context,
QName name,
int index,
Object value) |
NodePointer |
NodePointer.createChild(JXPathContext context,
QName name,
int index,
Object value)
Called by a child pointer if that child needs to assign the value
supplied in the createPath(context, value) call to a non-existent
node.
|
NodePointer |
VariablePointerFactory.createNodePointer(NodePointer parent,
QName name,
Object object) |
NodePointer |
NodePointerFactory.createNodePointer(NodePointer parent,
QName name,
Object object)
Create a NodePointer for the supplied child object.
|
NodePointer |
VariablePointerFactory.createNodePointer(QName name,
Object object,
Locale locale) |
NodePointer |
NodePointerFactory.createNodePointer(QName name,
Object object,
Locale locale)
Create a NodePointer for the supplied object.
|
NodePointer |
VariablePointer.createPath(JXPathContext context) |
NodePointer |
NodePointer.createPath(JXPathContext context)
Called by a child pointer when it needs to create a parent object.
|
NodePointer |
VariablePointer.createPath(JXPathContext context,
Object value) |
NodePointer |
NodePointer.createPath(JXPathContext context,
Object value)
Called directly by JXPathContext.
|
NodePointer |
NodePointer.getImmediateParentPointer()
Get the immediate parent pointer.
|
NodePointer |
VariablePointer.getImmediateValuePointer() |
NodePointer |
NodePointer.getImmediateValuePointer() |
NodePointer |
NodeIterator.getNodePointer()
Get the NodePointer at the current position.
|
NodePointer |
NodePointer.getParent()
Get the parent pointer.
|
NodePointer |
NodePointer.getValuePointer()
If this pointer manages a transparent container, like a variable,
this method returns the pointer to the contents.
|
NodePointer |
VariablePointer.namespacePointer(String name) |
NodePointer |
NodePointer.namespacePointer(String namespace)
Returns a NodePointer for the specified namespace.
|
static NodePointer |
NodePointer.newChildNodePointer(NodePointer parent,
QName name,
Object bean)
Allocates an new child NodePointer by iterating through all installed
NodePointerFactories until it finds one that can create a pointer.
|
static NodePointer |
NodePointer.newNodePointer(QName name,
Object bean,
Locale locale)
Allocates an entirely new NodePointer by iterating through all installed
NodePointerFactories until it finds one that can create a pointer.
|
static NodePointer |
NodePointer.verify(NodePointer nodePointer)
Verify the structure of a given NodePointer.
|
Modifier and Type | Method and Description |
---|---|
NodeIterator |
VariablePointer.childIterator(NodeTest test,
boolean reverse,
NodePointer startWith) |
NodeIterator |
NodePointer.childIterator(NodeTest test,
boolean reverse,
NodePointer startWith)
Returns a NodeIterator that iterates over all children or all children
that match the given NodeTest, starting with the specified one.
|
int |
VariablePointer.compareChildNodePointers(NodePointer pointer1,
NodePointer pointer2) |
abstract int |
NodePointer.compareChildNodePointers(NodePointer pointer1,
NodePointer pointer2)
Compares two child NodePointers and returns a positive number,
zero or a positive number according to the order of the pointers.
|
NodePointer |
VariablePointerFactory.createNodePointer(NodePointer parent,
QName name,
Object object) |
NodePointer |
NodePointerFactory.createNodePointer(NodePointer parent,
QName name,
Object object)
Create a NodePointer for the supplied child object.
|
void |
NodePointer.handle(Throwable t,
NodePointer originator)
Handle a Throwable using an installed ExceptionHandler, if available.
|
static NodePointer |
NodePointer.newChildNodePointer(NodePointer parent,
QName name,
Object bean)
Allocates an new child NodePointer by iterating through all installed
NodePointerFactories until it finds one that can create a pointer.
|
static NodePointer |
NodePointer.verify(NodePointer nodePointer)
Verify the structure of a given NodePointer.
|
Constructor and Description |
---|
NodePointer(NodePointer parent)
Create a new NodePointer.
|
NodePointer(NodePointer parent,
Locale locale)
Create a new NodePointer.
|
Modifier and Type | Class and Description |
---|---|
class |
BeanPointer
A Pointer that points to a JavaBean or a collection.
|
class |
BeanPropertyPointer
Pointer pointing to a property of a JavaBean.
|
class |
CollectionPointer
Transparent pointer to a collection (array or Collection).
|
class |
LangAttributePointer
A Pointer that points to the "lang" attribute of a JavaBean.
|
class |
NullElementPointer
Used when there is a need to construct a Pointer for a collection element
that does not exist.
|
class |
NullPointer
Pointer whose value is
null . |
class |
NullPropertyPointer |
class |
PropertyOwnerPointer
A pointer describing a node that has properties, each of which could be
a collection.
|
class |
PropertyPointer
A pointer allocated by a PropertyOwnerPointer to represent the value of
a property of the parent object.
|
Modifier and Type | Method and Description |
---|---|
NodePointer |
PropertyPointer.createChild(JXPathContext context,
QName name,
int index) |
NodePointer |
NullPropertyPointer.createChild(JXPathContext context,
QName name,
int index) |
NodePointer |
NullPointer.createChild(JXPathContext context,
QName name,
int index) |
NodePointer |
CollectionPointer.createChild(JXPathContext context,
QName name,
int index) |
NodePointer |
PropertyPointer.createChild(JXPathContext context,
QName name,
int index,
Object value) |
NodePointer |
NullPropertyPointer.createChild(JXPathContext context,
QName name,
int index,
Object value) |
NodePointer |
NullPointer.createChild(JXPathContext context,
QName name,
int index,
Object value) |
NodePointer |
CollectionPointer.createChild(JXPathContext context,
QName name,
int index,
Object value) |
NodePointer |
CollectionPointerFactory.createNodePointer(NodePointer parent,
QName name,
Object bean) |
NodePointer |
BeanPointerFactory.createNodePointer(NodePointer parent,
QName name,
Object bean) |
NodePointer |
CollectionPointerFactory.createNodePointer(QName name,
Object bean,
Locale locale) |
NodePointer |
BeanPointerFactory.createNodePointer(QName name,
Object bean,
Locale locale) |
NodePointer |
PropertyPointer.createPath(JXPathContext context) |
NodePointer |
NullPropertyPointer.createPath(JXPathContext context) |
NodePointer |
NullPointer.createPath(JXPathContext context) |
NodePointer |
NullElementPointer.createPath(JXPathContext context) |
NodePointer |
CollectionPointer.createPath(JXPathContext context) |
NodePointer |
BeanPropertyPointer.createPath(JXPathContext context) |
NodePointer |
PropertyPointer.createPath(JXPathContext context,
Object value) |
NodePointer |
NullPropertyPointer.createPath(JXPathContext context,
Object value) |
NodePointer |
NullPointer.createPath(JXPathContext context,
Object value) |
NodePointer |
NullElementPointer.createPath(JXPathContext context,
Object value) |
NodePointer |
CollectionPointer.createPath(JXPathContext context,
Object value) |
NodePointer |
PropertyPointer.getImmediateValuePointer()
Returns a NodePointer that can be used to access the currently
selected property value.
|
NodePointer |
PropertyIterator.getNodePointer() |
NodePointer |
CollectionNodeIterator.getNodePointer() |
NodePointer |
BeanAttributeIterator.getNodePointer() |
protected NodePointer |
PropertyIterator.getPropertyPointer()
Get the property pointer.
|
NodePointer |
NullPropertyPointer.getValuePointer() |
NodePointer |
NullElementPointer.getValuePointer() |
NodePointer |
CollectionPointer.getValuePointer() |
NodePointer |
CollectionPointer.namespacePointer(String namespace) |
Modifier and Type | Method and Description |
---|---|
NodeIterator |
PropertyOwnerPointer.childIterator(NodeTest test,
boolean reverse,
NodePointer startWith) |
NodeIterator |
CollectionPointer.childIterator(NodeTest test,
boolean reverse,
NodePointer startWith) |
int |
PropertyPointer.compareChildNodePointers(NodePointer pointer1,
NodePointer pointer2) |
int |
PropertyOwnerPointer.compareChildNodePointers(NodePointer pointer1,
NodePointer pointer2) |
int |
LangAttributePointer.compareChildNodePointers(NodePointer pointer1,
NodePointer pointer2) |
int |
CollectionPointer.compareChildNodePointers(NodePointer pointer1,
NodePointer pointer2) |
NodeIterator |
PropertyOwnerPointer.createNodeIterator(String property,
boolean reverse,
NodePointer startWith)
Create a NodeIterator.
|
NodePointer |
CollectionPointerFactory.createNodePointer(NodePointer parent,
QName name,
Object bean) |
NodePointer |
BeanPointerFactory.createNodePointer(NodePointer parent,
QName name,
Object bean) |
protected abstract NodeIterator |
CollectionNodeIterator.getElementNodeIterator(NodePointer elementPointer)
Implemented by subclasses to produce child/attribute node iterators.
|
protected NodeIterator |
CollectionChildNodeIterator.getElementNodeIterator(NodePointer elementPointer) |
protected NodeIterator |
CollectionAttributeNodeIterator.getElementNodeIterator(NodePointer elementPointer) |
Constructor and Description |
---|
BeanPointer(NodePointer parent,
QName name,
Object bean,
JXPathBeanInfo beanInfo)
Create a new BeanPointer.
|
BeanPropertyPointer(NodePointer parent,
JXPathBeanInfo beanInfo)
Create a new BeanPropertyPointer.
|
CollectionChildNodeIterator(CollectionPointer pointer,
NodeTest test,
boolean reverse,
NodePointer startWith)
Create a new CollectionChildNodeIterator.
|
CollectionNodeIterator(CollectionPointer pointer,
boolean reverse,
NodePointer startWith)
Create a new CollectionNodeIterator.
|
CollectionPointer(NodePointer parent,
Object collection)
Create a new CollectionPointer.
|
LangAttributePointer(NodePointer parent)
Create a new LangAttributePointer.
|
NullElementPointer(NodePointer parent,
int index)
Create a new NullElementPointer.
|
NullPointer(NodePointer parent,
QName name)
Used for the root node.
|
NullPropertyPointer(NodePointer parent)
Create a new NullPropertyPointer.
|
PropertyIterator(PropertyOwnerPointer pointer,
String name,
boolean reverse,
NodePointer startWith)
Create a new PropertyIterator.
|
PropertyOwnerPointer(NodePointer parent)
Create a new PropertyOwnerPointer.
|
PropertyOwnerPointer(NodePointer parent,
Locale locale)
Create a new PropertyOwnerPointer.
|
PropertyPointer(NodePointer parent)
Takes a javabean, a descriptor of a property of that object and
an offset within that property (starting with 0).
|
Modifier and Type | Class and Description |
---|---|
class |
ContainerPointer
Transparent pointer to a Container.
|
Modifier and Type | Method and Description |
---|---|
NodePointer |
ContainerPointerFactory.createNodePointer(NodePointer parent,
QName name,
Object bean) |
NodePointer |
ContainerPointerFactory.createNodePointer(QName name,
Object bean,
Locale locale) |
NodePointer |
ContainerPointer.getImmediateValuePointer() |
NodePointer |
ContainerPointer.namespacePointer(String namespace) |
Modifier and Type | Method and Description |
---|---|
NodeIterator |
ContainerPointer.childIterator(NodeTest test,
boolean reverse,
NodePointer startWith) |
int |
ContainerPointer.compareChildNodePointers(NodePointer pointer1,
NodePointer pointer2) |
NodePointer |
ContainerPointerFactory.createNodePointer(NodePointer parent,
QName name,
Object bean) |
Constructor and Description |
---|
ContainerPointer(NodePointer parent,
Container container)
Create a new ContainerPointer.
|
Modifier and Type | Class and Description |
---|---|
class |
DOMAttributePointer
A Pointer that points to a DOM node.
|
class |
DOMNodePointer
A Pointer that points to a DOM node.
|
class |
NamespacePointer
Represents a namespace node.
|
Modifier and Type | Method and Description |
---|---|
NodePointer |
DOMNodePointer.createAttribute(JXPathContext context,
QName name) |
NodePointer |
DOMNodePointer.createChild(JXPathContext context,
QName name,
int index) |
NodePointer |
DOMNodePointer.createChild(JXPathContext context,
QName name,
int index,
Object value) |
NodePointer |
DOMPointerFactory.createNodePointer(NodePointer parent,
QName name,
Object bean) |
NodePointer |
DOMPointerFactory.createNodePointer(QName name,
Object bean,
Locale locale) |
NodePointer |
DOMNodeIterator.getNodePointer() |
NodePointer |
DOMNamespaceIterator.getNodePointer() |
NodePointer |
DOMAttributeIterator.getNodePointer() |
NodePointer |
DOMNodePointer.namespacePointer(String prefix) |
Modifier and Type | Method and Description |
---|---|
NodeIterator |
DOMNodePointer.childIterator(NodeTest test,
boolean reverse,
NodePointer startWith) |
int |
NamespacePointer.compareChildNodePointers(NodePointer pointer1,
NodePointer pointer2) |
int |
DOMNodePointer.compareChildNodePointers(NodePointer pointer1,
NodePointer pointer2) |
int |
DOMAttributePointer.compareChildNodePointers(NodePointer pointer1,
NodePointer pointer2) |
NodePointer |
DOMPointerFactory.createNodePointer(NodePointer parent,
QName name,
Object bean) |
Constructor and Description |
---|
DOMAttributeIterator(NodePointer parent,
QName name)
Create a new DOMAttributeIterator.
|
DOMAttributePointer(NodePointer parent,
org.w3c.dom.Attr attr)
Create a new DOMAttributePointer.
|
DOMNamespaceIterator(NodePointer parent)
Create a new DOMNamespaceIterator.
|
DOMNodeIterator(NodePointer parent,
NodeTest nodeTest,
boolean reverse,
NodePointer startWith)
Create a new DOMNodeIterator.
|
DOMNodePointer(NodePointer parent,
org.w3c.dom.Node node)
Create a new DOMNodePointer.
|
NamespacePointer(NodePointer parent,
String prefix)
Create a new NamespacePointer.
|
NamespacePointer(NodePointer parent,
String prefix,
String namespaceURI)
Create a new NamespacePointer.
|
Modifier and Type | Class and Description |
---|---|
class |
DynaBeanPointer
A Pointer that points to a
DynaBean . |
class |
DynaBeanPropertyPointer
Pointer pointing to a property of a
DynaBean . |
Modifier and Type | Method and Description |
---|---|
NodePointer |
StrictLazyDynaBeanPointerFactory.createNodePointer(NodePointer parent,
QName name,
Object object)
Create a NodePointer for the supplied child object.
|
NodePointer |
DynaBeanPointerFactory.createNodePointer(NodePointer parent,
QName name,
Object bean) |
NodePointer |
StrictLazyDynaBeanPointerFactory.createNodePointer(QName name,
Object object,
Locale locale)
Create a NodePointer for the supplied object.
|
NodePointer |
DynaBeanPointerFactory.createNodePointer(QName name,
Object bean,
Locale locale) |
Modifier and Type | Method and Description |
---|---|
NodePointer |
StrictLazyDynaBeanPointerFactory.createNodePointer(NodePointer parent,
QName name,
Object object)
Create a NodePointer for the supplied child object.
|
NodePointer |
DynaBeanPointerFactory.createNodePointer(NodePointer parent,
QName name,
Object bean) |
Constructor and Description |
---|
DynaBeanPointer(NodePointer parent,
QName name,
DynaBean dynaBean)
Create a new DynaBeanPointer.
|
DynaBeanPropertyPointer(NodePointer parent,
DynaBean dynaBean)
Create a new DynaBeanPropertyPointer.
|
Modifier and Type | Class and Description |
---|---|
class |
DynamicPointer
A Pointer that points to an object with Dynamic Properties.
|
class |
DynamicPropertyPointer
Pointer pointing to a property of an object with dynamic properties.
|
Modifier and Type | Method and Description |
---|---|
NodePointer |
DynamicPointerFactory.createNodePointer(NodePointer parent,
QName name,
Object bean) |
NodePointer |
DynamicPointerFactory.createNodePointer(QName name,
Object bean,
Locale locale) |
NodePointer |
DynamicPropertyPointer.createPath(JXPathContext context) |
NodePointer |
DynamicPropertyPointer.createPath(JXPathContext context,
Object value) |
Modifier and Type | Method and Description |
---|---|
NodeIterator |
DynamicPointer.createNodeIterator(String property,
boolean reverse,
NodePointer startWith) |
NodePointer |
DynamicPointerFactory.createNodePointer(NodePointer parent,
QName name,
Object bean) |
Constructor and Description |
---|
DynamicPointer(NodePointer parent,
QName name,
Object bean,
DynamicPropertyHandler handler)
Create a new DynamicPointer.
|
DynamicPropertyIterator(PropertyOwnerPointer pointer,
String name,
boolean reverse,
NodePointer startWith)
Deprecated.
Create a new DynamicPropertyIterator
|
DynamicPropertyPointer(NodePointer parent,
DynamicPropertyHandler handler)
Create a new DynamicPropertyPointer.
|
Modifier and Type | Class and Description |
---|---|
class |
JDOMAttributePointer
A Pointer that points to a DOM node.
|
class |
JDOMNamespacePointer
Represents a namespace node.
|
class |
JDOMNodePointer
A Pointer that points to a DOM node.
|
Modifier and Type | Method and Description |
---|---|
NodePointer |
JDOMNodePointer.createAttribute(JXPathContext context,
QName name) |
NodePointer |
JDOMNodePointer.createChild(JXPathContext context,
QName name,
int index) |
NodePointer |
JDOMNodePointer.createChild(JXPathContext context,
QName name,
int index,
Object value) |
NodePointer |
JDOMPointerFactory.createNodePointer(NodePointer parent,
QName name,
Object bean) |
NodePointer |
JDOMPointerFactory.createNodePointer(QName name,
Object bean,
Locale locale) |
NodePointer |
JDOMNodeIterator.getNodePointer() |
NodePointer |
JDOMNamespaceIterator.getNodePointer() |
NodePointer |
JDOMAttributeIterator.getNodePointer() |
NodePointer |
JDOMNodePointer.namespacePointer(String prefix) |
Modifier and Type | Method and Description |
---|---|
NodeIterator |
JDOMNodePointer.childIterator(NodeTest test,
boolean reverse,
NodePointer startWith) |
int |
JDOMNodePointer.compareChildNodePointers(NodePointer pointer1,
NodePointer pointer2) |
int |
JDOMNamespacePointer.compareChildNodePointers(NodePointer pointer1,
NodePointer pointer2) |
int |
JDOMAttributePointer.compareChildNodePointers(NodePointer pointer1,
NodePointer pointer2) |
NodePointer |
JDOMPointerFactory.createNodePointer(NodePointer parent,
QName name,
Object bean) |
static boolean |
JDOMNodePointer.testNode(NodePointer pointer,
Object node,
NodeTest test)
Execute test against node on behalf of pointer.
|
Constructor and Description |
---|
JDOMAttributeIterator(NodePointer parent,
QName name)
Create a new JDOMAttributeIterator.
|
JDOMAttributePointer(NodePointer parent,
org.jdom.Attribute attr)
Create a JDOMAttributePointer.
|
JDOMNamespaceIterator(NodePointer parent)
Create a new JDOMNamespaceIterator.
|
JDOMNamespacePointer(NodePointer parent,
String prefix)
Create a new JDOMNamespacePointer.
|
JDOMNamespacePointer(NodePointer parent,
String prefix,
String namespaceURI)
Create a new JDOMNamespacePointer.
|
JDOMNodeIterator(NodePointer parent,
NodeTest nodeTest,
boolean reverse,
NodePointer startWith)
Create a new JDOMNodeIterator.
|
JDOMNodePointer(NodePointer parent,
Object node)
Create a new JDOMNodePointer.
|
Copyright © 2001–2015 The Apache Software Foundation. All rights reserved.