package org.develnext.jphp.debug.impl.command; import org.develnext.jphp.debug.impl.DebugTick; import org.develnext.jphp.debug.impl.Debugger; import org.develnext.jphp.debug.impl.command.support.CommandArguments; import org.develnext.jphp.debug.impl.command.support.ContextValueProvider; import org.w3c.dom.Document; import org.w3c.dom.Element; import php.runtime.Memory; import php.runtime.lang.ForeachIterator; public class ContextGetCommand extends AbstractCommand { @Override public String getName() { return "context_get"; } @Override public void run(Debugger context, CommandArguments args, Document result) { Element response = createResponse(args, result); String contextId = args.get("c"); response.setAttribute("context", contextId); ContextValueProvider contextValueProvider = new ContextValueProvider(context, result); switch (contextId) { case "0": DebugTick tick = context.getRegisteredTick(); ForeachIterator iterator = tick.getLocals().foreachIterator(true, false); while (iterator.next()) { Memory value = iterator.getValue().toValue(); if (value.isUndefined()) { continue; } response.appendChild(contextValueProvider.getProperty(iterator.getKey().toString(), value)); } break; } } }