package org.python.pydev.debug.model; import com.aptana.interactive_console.console.codegen.IScriptConsoleCodeGenerator; public class PyConsoleCodeGeneratorVariable implements IScriptConsoleCodeGenerator { private final PyVariable variable; public PyConsoleCodeGeneratorVariable(PyVariable variable) { this.variable = variable; } public String getPyCode() { return variable.name; /* * For now this class is only useful as a demonstration of the * IScriptConsoleCodeGenerator and related classes. Dragging anything * other than a toplevel node out of the Variables view does not produce * anything interesting. * * TODO? Write code that can determine a full access to this variable * name e.g. if a list called name is in the variables view and the * index 0 is dragged into the console, the ideal thing to return here * is "name[0]". At the moment I don't think enough information is * returned from pydevd_vars to determine the difference between types * of objects. Doing this is possible for simple cases, but for all * cases it may be difficult or impossible. Consider, for example, dict * entries which need resolving by id(). Perhaps an access to a pydev * function, so if you drop a dict key you get a line like this: * pydevd_resolver.DictResolver().resolve(dict_name, 'a (12345678)') * Of course for a complex hierarchy of objects the line would be * quite unreadable. */ } public boolean hasPyCode() { return variable != null && variable.name != null && variable.name.length() > 0; } }