MCPcopy Create free account
hub / github.com/BaseXdb/basex / item

Method item

basex-core/src/main/java/org/basex/query/expr/constr/CElem.java:123–153  ·  view source on GitHub ↗
(final QueryContext qc, final InputInfo ii)

Source from the content-addressed store, hash-verified

121 }
122
123 @Override
124 public FNode item(final QueryContext qc, final InputInfo ii) throws QueryException {
125 final int s = addNS(qc);
126 try {
127 // create and check element name
128 final QNm nm = qname(true, qc);
129 final byte[] nmPrefix = nm.prefix(), nmUri = nm.uri();
130 if(eq(nmPrefix, XML) ^ eq(nmUri, XML_URI)) throw CEXML.get(info, nmPrefix, nmUri);
131 if(eq(nmUri, XMLNS_URI)) throw CEINV_X.get(info, nmUri);
132 if(eq(nmPrefix, XMLNS)) throw CEINV_X.get(info, nmPrefix);
133 if(!nm.hasURI() && nm.hasPrefix()) throw NOQNNAMENS_X.get(info, nmPrefix);
134
135 // create node
136 final FBuilder elem = FElem.build(nm);
137
138 // add child and attribute nodes
139 final Constr constr = new Constr(elem, info, qc).add(exprs);
140 if(constr.errAtt != null) throw NOATTALL_X.get(info, constr.errAtt);
141 if(constr.errNS != null) throw NONSALL_X.get(info, constr.errNS);
142 if(constr.duplAtt != null) throw CATTDUPL_X.get(info, constr.duplAtt);
143 if(constr.duplNS != null) throw DUPLNSCONS_X.get(info, constr.duplNS);
144
145 // assign namespaces
146 constr.namespaces(nspaces, nm);
147
148 // return optimized node
149 return elem.finish();
150 } finally {
151 qc.ns.size(s);
152 }
153 }
154
155 @Override
156 public Expr copy(final CompileContext cc, final IntObjectMap<Var> vm) {

Callers

nothing calls this directly

Calls 13

addNSMethod · 0.95
prefixMethod · 0.95
uriMethod · 0.95
hasURIMethod · 0.95
hasPrefixMethod · 0.95
buildMethod · 0.95
namespacesMethod · 0.95
finishMethod · 0.95
eqMethod · 0.65
getMethod · 0.65
addMethod · 0.65
sizeMethod · 0.65

Tested by

no test coverage detected