use of org.apache.xpath.axes.OneStepIterator in project j2objc by google.
the class XObjectFactory method create.
/**
* Create the right XObject based on the type of the object passed.
* This function <emph>can</emph> make an XObject that exposes DOM Nodes, NodeLists, and
* NodeIterators to the XSLT stylesheet as node-sets.
*
* @param val The java object which this object will wrap.
* @param xctxt The XPath context.
*
* @return the right XObject based on the type of the object passed.
*/
public static XObject create(Object val, XPathContext xctxt) {
XObject result;
if (val instanceof XObject) {
result = (XObject) val;
} else if (val instanceof String) {
result = new XString((String) val);
} else if (val instanceof Boolean) {
result = new XBoolean((Boolean) val);
} else if (val instanceof Number) {
result = new XNumber(((Number) val));
} else if (val instanceof DTM) {
DTM dtm = (DTM) val;
try {
int dtmRoot = dtm.getDocument();
DTMAxisIterator iter = dtm.getAxisIterator(Axis.SELF);
iter.setStartNode(dtmRoot);
DTMIterator iterator = new OneStepIterator(iter, Axis.SELF);
iterator.setRoot(dtmRoot, xctxt);
result = new XNodeSet(iterator);
} catch (Exception ex) {
throw new org.apache.xml.utils.WrappedRuntimeException(ex);
}
} else if (val instanceof DTMAxisIterator) {
DTMAxisIterator iter = (DTMAxisIterator) val;
try {
DTMIterator iterator = new OneStepIterator(iter, Axis.SELF);
iterator.setRoot(iter.getStartNode(), xctxt);
result = new XNodeSet(iterator);
} catch (Exception ex) {
throw new org.apache.xml.utils.WrappedRuntimeException(ex);
}
} else if (val instanceof DTMIterator) {
result = new XNodeSet((DTMIterator) val);
} else // might also implement a Node!
if (val instanceof org.w3c.dom.Node) {
result = new XNodeSetForDOM((org.w3c.dom.Node) val, xctxt);
} else // also implement NodeList.
if (val instanceof org.w3c.dom.NodeList) {
result = new XNodeSetForDOM((org.w3c.dom.NodeList) val, xctxt);
} else if (val instanceof org.w3c.dom.traversal.NodeIterator) {
result = new XNodeSetForDOM((org.w3c.dom.traversal.NodeIterator) val, xctxt);
} else {
result = new XObject(val);
}
return result;
}
use of org.apache.xpath.axes.OneStepIterator in project robovm by robovm.
the class XObjectFactory method create.
/**
* Create the right XObject based on the type of the object passed.
* This function <emph>can</emph> make an XObject that exposes DOM Nodes, NodeLists, and
* NodeIterators to the XSLT stylesheet as node-sets.
*
* @param val The java object which this object will wrap.
* @param xctxt The XPath context.
*
* @return the right XObject based on the type of the object passed.
*/
public static XObject create(Object val, XPathContext xctxt) {
XObject result;
if (val instanceof XObject) {
result = (XObject) val;
} else if (val instanceof String) {
result = new XString((String) val);
} else if (val instanceof Boolean) {
result = new XBoolean((Boolean) val);
} else if (val instanceof Number) {
result = new XNumber(((Number) val));
} else if (val instanceof DTM) {
DTM dtm = (DTM) val;
try {
int dtmRoot = dtm.getDocument();
DTMAxisIterator iter = dtm.getAxisIterator(Axis.SELF);
iter.setStartNode(dtmRoot);
DTMIterator iterator = new OneStepIterator(iter, Axis.SELF);
iterator.setRoot(dtmRoot, xctxt);
result = new XNodeSet(iterator);
} catch (Exception ex) {
throw new org.apache.xml.utils.WrappedRuntimeException(ex);
}
} else if (val instanceof DTMAxisIterator) {
DTMAxisIterator iter = (DTMAxisIterator) val;
try {
DTMIterator iterator = new OneStepIterator(iter, Axis.SELF);
iterator.setRoot(iter.getStartNode(), xctxt);
result = new XNodeSet(iterator);
} catch (Exception ex) {
throw new org.apache.xml.utils.WrappedRuntimeException(ex);
}
} else if (val instanceof DTMIterator) {
result = new XNodeSet((DTMIterator) val);
} else // might also implement a Node!
if (val instanceof org.w3c.dom.Node) {
result = new XNodeSetForDOM((org.w3c.dom.Node) val, xctxt);
} else // also implement NodeList.
if (val instanceof org.w3c.dom.NodeList) {
result = new XNodeSetForDOM((org.w3c.dom.NodeList) val, xctxt);
} else if (val instanceof org.w3c.dom.traversal.NodeIterator) {
result = new XNodeSetForDOM((org.w3c.dom.traversal.NodeIterator) val, xctxt);
} else {
result = new XObject(val);
}
return result;
}
Aggregations