package org.exist.xquery.functions.map; import org.exist.xquery.AbstractInternalModule; import org.exist.xquery.FunctionDef; import java.util.List; import java.util.Map; /** * Implements the XQuery extension for maps as proposed by Michael Kay: * * http://dev.saxonica.com/blog/mike/2012/01/#000188 */ public class MapModule extends AbstractInternalModule { public static final String NAMESPACE_URI = "http://www.w3.org/2005/xpath-functions/map"; public static final String PREFIX = "map"; private static final FunctionDef[] functions = { new FunctionDef(MapFunction.FNS_MERGE, MapFunction.class), new FunctionDef(MapFunction.FNS_SIZE, MapFunction.class), new FunctionDef(MapFunction.FNS_KEYS, MapFunction.class), new FunctionDef(MapFunction.FNS_CONTAINS, MapFunction.class), new FunctionDef(MapFunction.FNS_GET, MapFunction.class), new FunctionDef(MapFunction.FNS_PUT, MapFunction.class), new FunctionDef(MapFunction.FNS_ENTRY, MapFunction.class), new FunctionDef(MapFunction.FNS_REMOVE, MapFunction.class), new FunctionDef(MapFunction.FNS_FOR_EACH, MapFunction.class), /* Deprecated below */ new FunctionDef(MapFunction.FNS_NEW_0, MapFunction.class), new FunctionDef(MapFunction.FNS_NEW_N, MapFunction.class), new FunctionDef(MapFunction.FNS_NEW_N_COLLATION, MapFunction.class), new FunctionDef(MapFunction.FNS_FOR_EACH_ENTRY, MapFunction.class) }; public MapModule(Map<String, List<? extends Object>> parameters) { super(functions, parameters, false); } public String getNamespaceURI() { return "http://www.w3.org/2005/xpath-functions/map"; } public String getDefaultPrefix() { return "map"; } public String getDescription() { return "Functions that operate on maps"; } public String getReleaseVersion() { return "eXist-2.0.x"; } }