use of net.sf.saxon.om.StructuredQName in project intellij-community by JetBrains.
the class Saxon9Support method init.
public static boolean init(Transformer transformer, final LocalDebugger dbg) {
if (transformer instanceof Controller) {
System.out.println("SAXON 9");
final Controller controller = (Controller) transformer;
((Saxon9TraceListener) controller.getConfiguration().getTraceListener()).setDebugger(dbg);
controller.getConfiguration().setLineNumbering(true);
controller.getConfiguration().setCompileWithTracing(true);
controller.getConfiguration().setMultiThreading(false);
controller.getConfiguration().setSerializerFactory(new SerializerFactory(controller.getConfiguration()) {
@Override
protected Receiver createXMLSerializer(Emitter emitter, Properties props, PipelineConfiguration pipe, CharacterMapExpander characterMapExpander, ProxyReceiver normalizer) throws XPathException {
return super.createXMLSerializer(emitter, props, pipe, characterMapExpander, normalizer);
}
@Override
protected Emitter newXMLEmitter() {
return new TracingOutputter(dbg.getEventQueue(), super.newXMLEmitter());
}
});
controller.getConfiguration().setDebugger(new Debugger() {
public SlotManager makeSlotManager() {
return new SlotManager() {
@Override
public int allocateSlotNumber(StructuredQName qName) {
System.out.println("qName = " + qName);
return super.allocateSlotNumber(qName);
}
};
}
});
return true;
}
return false;
}
use of net.sf.saxon.om.StructuredQName in project intellij-community by JetBrains.
the class Saxon9StyleFrame method collectVariables.
private ArrayList<Debugger.Variable> collectVariables() {
final ArrayList<Debugger.Variable> variables = new ArrayList<Debugger.Variable>();
final HashMap<StructuredQName, GlobalVariable> globalVariables = myXPathContext.getController().getExecutable().getCompiledGlobalVariables();
if (globalVariables != null) {
for (StructuredQName name : globalVariables.keySet()) {
final GlobalVariable globalVariable = globalVariables.get(name);
final Value value = createVariableValue(new GlobalVariableFacade(globalVariable));
final int lineNumber = globalVariable.getLineNumber();
final String systemId = globalVariable.getSourceLocator().getSystemId();
variables.add(new VariableImpl(globalVariable.getVariableQName().getDisplayName(), value, true, Debugger.Variable.Kind.VARIABLE, systemId, lineNumber));
}
}
XPathContext context = myXPathContext;
while (context != null) {
final StackFrame frame = context.getStackFrame();
final SlotManager map = frame.getStackFrameMap();
final ValueRepresentation[] values = frame.getStackFrameValues();
outer: for (int i = 0, valuesLength = values.length; i < valuesLength; i++) {
final ValueRepresentation value = values[i];
if (value != null) {
final String name = map.getVariableMap().get(i).getDisplayName();
for (Debugger.Variable variable : variables) {
if (name.equals(variable.getName())) {
continue outer;
}
}
final Value localValue = createVariableValue(new LocalVariableFacade(value));
variables.add(new VariableImpl(name, localValue, false, Debugger.Variable.Kind.VARIABLE, "", -1));
}
}
context = context.getCaller();
}
return variables;
}
Aggregations