@Override public void execute(Context ctx) { BValue result = null; try { // Accessing Parameters. BXML value = (BXML) ctx.getRefArgument(0); result = value.copy(new HashMap<>()); } catch (Throwable e) { ErrorHandler.handleXMLException(OPERATION, e); } // Setting output value. ctx.setReturnValues(result); } }
XMLNodeType xmlOneNodeType = xmlOne.getNodeType(); XMLNodeType xmlTwoNodeType = xmlTwo.getNodeType(); return isXmlItemEqual((BXMLItem) xmlOne, (BXMLItem) xmlTwo); } else { if (xmlOneNodeType == XMLNodeType.SEQUENCE && xmlOne.isSingleton().booleanValue()) { return Arrays.equals(canonicalize((BXMLItem) ((BXMLSequence) xmlOne).getItem(0)), canonicalize((BXMLItem) xmlTwo)); if (xmlTwoNodeType == XMLNodeType.SEQUENCE && xmlTwo.isSingleton().booleanValue()) { return Arrays.equals(canonicalize((BXMLItem) xmlOne), canonicalize((BXMLItem) ((BXMLSequence) xmlTwo).getItem(0)));
/** * Recursively traverse and add the descendant with the given name to the descendants list. * * @param descendants List to add descendants * @param currentElement Current node * @param qname Qualified name of the descendants to search */ protected void addDescendants(List<BXML<?>> descendants, OMElement currentElement, String qname) { Iterator<OMNode> childrenItr = currentElement.getChildren(); while (childrenItr.hasNext()) { OMNode child = childrenItr.next(); if (child.getType() != OMNode.ELEMENT_NODE) { continue; } if (qname.equals(((OMElement) child).getQName().toString())) { descendants.add(new BXMLItem(child)); continue; } addDescendants(descendants, (OMElement) child, qname); } }
xmlQName = Optional.of((BXMLQName) sf.refRegs[j]).get(); try { xmlVal.setAttribute(xmlQName.getLocalName(), xmlQName.getUri(), xmlQName.getPrefix(), sf.stringRegs[k]); } catch (BallerinaException e) { sf.stringRegs[k] = xmlVal.getAttribute(xmlQName.getLocalName(), xmlQName.getUri(), xmlQName.getPrefix()); break; long index = sf.longRegs[j]; try { sf.refRegs[k] = xmlVal.getItem(index); } catch (BallerinaException e) { ctx.setError(BLangVMErrors.createError(ctx, BallerinaErrorReasons.XML_OPERATION_ERROR, sf.refRegs[k] = xmlVal.children(qname); break; case InstructionCodes.XMLLOADALL: sf.refRegs[j] = xmlVal.children(); break; case InstructionCodes.NEWXMLELEMENT:
/** * {@inheritDoc} */ @Override public void addChildren(BXML<?> seq) { synchronized (this) { if (freezeStatus.getState() != BVM.FreezeStatus.State.UNFROZEN) { handleInvalidUpdate(freezeStatus.getState()); } } if (seq == null) { return; } OMElement currentNode; switch (nodeType) { case ELEMENT: currentNode = ((OMElement) omNode); break; default: throw new BallerinaException("not an " + XMLNodeType.ELEMENT); } if (seq.getNodeType() == XMLNodeType.SEQUENCE) { BValueArray childSeq = ((BXMLSequence) seq).value(); for (int i = 0; i < childSeq.size(); i++) { currentNode.addChild((OMNode) childSeq.getRefValue(i).value()); } } else { currentNode.addChild((OMNode) seq.value()); } }
firstSeq.build(); secondSeq.build(); if (firstSeq.getNodeType() == XMLNodeType.SEQUENCE) { BValueArray seq = ((BXMLSequence) firstSeq).value(); for (int i = 0; i < seq.size(); i++) { if (secondSeq.getNodeType() == XMLNodeType.SEQUENCE) { BValueArray seq = ((BXMLSequence) secondSeq).value(); for (int i = 0; i < seq.size(); i++) {
@Override public void execute(Context ctx) { try { BXML<?> xml = (BXML<?>) ctx.getRefArgument(0); BXML<?> children = (BXML<?>) ctx.getRefArgument(1); xml.addChildren(children); } catch (Throwable e) { ErrorHandler.handleXMLException(OPERATION, e); } // Setting output value. ctx.setReturnValues(); } }
@Override public void execute(Context ctx) { BValue result = null; try { // Accessing Parameters. BXML xml = (BXML) ctx.getRefArgument(0); result = xml.isSingleton(); } catch (Throwable e) { ErrorHandler.handleXMLException(OPERATION, e); } // Setting output value. ctx.setReturnValues(result); } }
case TypeTags.XML_TAG: BXML bxml = XMLUtils.parse(aggregateString); if (bxml.getNodeType() != XMLNodeType.ELEMENT) { throw new BallerinaException("Invalid XML data");
@Override public void execute(Context ctx) { BValue result = null; try { // Accessing Parameters. BXML value = (BXML) ctx.getRefArgument(0); result = value.elements(); } catch (Throwable e) { ErrorHandler.handleXMLException(OPERATION, e); } // Setting output value. ctx.setReturnValues(result); } }
/** * {@inheritDoc} */ @Override public void build() { for (int i = 0; i < sequence.size(); i++) { ((BXML<?>) sequence.getRefValue(i)).build(); } }
@Override public void execute(Context ctx) { BValue result = null; try { // Accessing Parameters. BXML<?> value = (BXML<?>) ctx.getRefArgument(0); String qname = ctx.getStringArgument(0); result = value.descendants(qname); } catch (Throwable e) { ErrorHandler.handleXMLException(OPERATION, e); } // Setting output value. ctx.setReturnValues(result); } }
if (seq.getNodeType() == XMLNodeType.SEQUENCE) { BValueArray childSeq = ((BXMLSequence) seq).value(); for (int i = 0; i < childSeq.size(); i++) { currentNode.addChild((OMNode) seq.value());
xmlVal.addChildren(child); break; case InstructionCodes.NEWXMLSEQ:
@Override public void execute(Context ctx) { BValue result = null; try { // Accessing Parameters. BXML value = (BXML) ctx.getRefArgument(0); String qname = ctx.getStringArgument(0); result = value.elements(qname); } catch (Throwable e) { ErrorHandler.handleXMLException(OPERATION, e); } // Setting output value. ctx.setReturnValues(result); } }
/** * {@inheritDoc} */ @Override public BXMLSequence copy(Map<BValue, BValue> refs) { if (isFrozen()) { return this; } if (refs.containsKey(this)) { return (BXMLSequence) refs.get(this); } BRefType[] copiedVals = new BRefType[(int) sequence.size()]; refs.put(this, new BXMLSequence(new BValueArray(copiedVals, BTypes.typeXML))); for (int i = 0; i < sequence.size(); i++) { copiedVals[i] = ((BXML<?>) sequence.getRefValue(i)).copy(refs); } return (BXMLSequence) refs.get(this); }