public class ObjectMap extends SystemFunction
The current implementation physically creates a new map, though there's some optimization if it is known that only one of the entries will be needed. There would be scope for a faster implementation, creating a virtual map backed by the Java object, if this proves to be needed.
Constructor and Description |
---|
ObjectMap() |
Modifier and Type | Method and Description |
---|---|
MapItem |
call(XPathContext context,
Sequence[] arguments)
Evaluate this function call at run-time
|
static java.util.Map<java.lang.String,Function> |
makeMethodMap(Configuration config,
java.lang.Class javaClass,
java.lang.String required)
Make a map representing the methods defined in a class.
|
static MapItem |
toMap(Configuration config,
ObjectValue value,
java.lang.String required)
Convert a Java object to a map
|
dependsOnContextItem, dynamicCall, equals, export, exportAdditionalArguments, exportAttributes, fixArguments, getArity, getCardinality, getCompilerName, getContextNode, getDescription, getDetails, getErrorCodeForTypeErrors, getFunctionItemType, getFunctionName, getIntegerBounds, getNetCost, getOperandRoles, getRequiredType, getResultItemType, getResultItemType, getRetainedStaticContext, getSpecialProperties, getStaticBaseUriString, getStreamerName, importAttributes, isTrustedResultType, makeCall, makeFunction, makeFunctionCall, makeOptimizedFunctionCall, resultIfEmpty, setArity, setDetails, setRetainedStaticContext, supplyTypeInformation, toShortString, toString, typeCheckCaller
atomize, deepEquals, effectiveBooleanValue, getAnnotations, getStringValue, getStringValueCS, isArray, isMap, makeNewContext, simplify, typeCheck
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
argumentArray, getGenre
getLength, head, isStreamed, itemAt, iterate, iterator, reduce, subsequence, toGroundedValue
asIterable, materialize
makeRepeatable
public MapItem call(XPathContext context, Sequence[] arguments) throws XPathException
context
- The XPath dynamic evaluation contextarguments
- The values of the arguments to the function call. Each argument value (which is in general
a sequence) is supplied in the form of an iterator over the items in the sequence. If required, the
supplied sequence can be materialized by calling, for example, new SequenceExtent(arguments[i])
.
If the argument is always a singleton, then the single item may be obtained by calling
arguments[i].next()
. The implementation is not obliged to read all the items in each
SequenceIterator
if they are not required to compute the result; but if any SequenceIterator is not read
to completion, it is good practice to call its close() method.SingletonIterator
. If the result is an empty sequence,
the method should return EmptyIterator.getInstance()
XPathException
- if a dynamic error occurs during evaluation of the function. The Saxon run-time
code will add information about the error location.public static MapItem toMap(Configuration config, ObjectValue value, java.lang.String required)
config
- the Saxon Configurationvalue
- the (wrapped) Java object to be convertedrequired
- if non-null, indicates the key of the entry that is required in the map. If
this parameter is supplied, then the map will be limited to a single entry
with this key, since it is known that the other entries would never be used.public static java.util.Map<java.lang.String,Function> makeMethodMap(Configuration config, java.lang.Class javaClass, java.lang.String required)
config
- the Saxon configurationjavaClass
- the Java class whose methods are requiredrequired
- if non-null, indicates the key of the entry that is required in the map. If
this parameter is supplied, then the map will be limited to a single entry
with this key, since it is known that the other entries would never be usedCopyright (c) 2004-2020 Saxonica Limited. All rights reserved.