in mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementMixin.java [447:477]
public final XmlInput getXmlInput(boolean cache, boolean incremental) throws StreamException {
if (isExpanded()) {
return null;
}
boolean pull;
if (OMDataSourceUtil.isPullDataSource(dataSource)) {
pull = true;
} else if (OMDataSourceUtil.isPushDataSource(dataSource)) {
if (incremental) {
return null;
}
pull = false;
} else {
pull = incremental;
}
if (cache
&& (pull && OMDataSourceUtil.isDestructiveRead(dataSource)
|| !pull && OMDataSourceUtil.isDestructiveWrite(dataSource))) {
return null;
}
if (pull) {
try {
return new StAXPullInput(
dataSource.getReader(), AxiomXMLStreamReaderHelperFactory.INSTANCE);
} catch (XMLStreamException ex) {
throw new StreamException(ex);
}
} else {
return new PushOMDataSourceInput(this, dataSource);
}
}