@Override public Breakpoint[] initBreakpoints() { scriptBP = ClassLoadUnloadBreakpoint.create(JSUtils.NASHORN_SCRIPT+"*", false, ClassLoadUnloadBreakpoint.TYPE_CLASS_LOADED); scriptBP.setHidden(true); scriptBP.setSuspend(EventRequest.SUSPEND_NONE); sourceBindBP = MethodBreakpoint.create(NASHORN_CONTEXT_CLASS, NASHORN_CONTEXT_SOURCE_BIND_METHOD); sourceBindBP.setHidden(true); sourceBindBP.setSuspend(EventRequest.SUSPEND_EVENT_THREAD); return new Breakpoint[] { scriptBP, sourceBindBP }; }
public void propertyChange (PropertyChangeEvent e) { boolean en = shouldBeEnabled (); setEnabled ( ActionsManager.ACTION_FIX, en ); if (debugger.getState () == JPDADebugger.STATE_DISCONNECTED) destroy (); } public void sessionRemoved (Session session) {}
private static boolean isAnnotatable(Breakpoint b) { return (b instanceof LineBreakpoint || b instanceof FieldBreakpoint || b instanceof MethodBreakpoint) && !((JPDABreakpoint) b).isHidden(); }
public static boolean showSource(LineBreakpoint b) { if (b.getLineNumber() < 1) { return Context.showSource(b.getURL(), 1, null); } return Context.showSource(b.getURL(), b.getLineNumber(), null); }
public boolean sourceAvailable ( CallStackFrame csf, String stratumn ) { try { return sourceAvailable ( convertSlash (csf.getSourcePath (stratumn)), true ); } catch (AbsentInformationException e) { return sourceAvailable ( convertClassNameToRelativePath (csf.getClassName ()), true ); } }
public boolean hasNext() { if (reqAttributes == null) return false; boolean ret = false; try { Variable hasMoreElements = reqAttributes.invokeMethod( "hasMoreElements", "()Z", new Variable[0] ); ret = (hasMoreElements != null && "true".equals(hasMoreElements.getValue())); } catch (InvalidExpressionException e) { } catch (NoSuchMethodException e) { } return ret; }
private static ObjectVariable getSourceVar(JPDADebugger debugger, JPDAClassType classType) { List<Field> staticFields = classType.staticFields(); for (Field sf : staticFields) { if (sf instanceof ObjectVariable && SOURCE_FIELD.equals(sf.getName()) && SOURCE_CLASS.equals(sf.getType())) { return (ObjectVariable) sf; } } return null; }
static Variable getDescriptionValueObject(Variable descVar) { return ((ObjectVariable) descVar).getField(FIELD_DESC_VALUE_AS_OBJECT); }
public static Variable getSourceInfo(JPDADebugger debugger, JPDAClassType classType) { List<JPDAClassType> supportClasses = debugger.getClassesByName(DEBUGGER_SUPPORT_CLASS); if (supportClasses.isEmpty()) { return null; } JPDAClassType supportClass = supportClasses.get(0); try { Variable sourceInfo = supportClass.invokeMethod(METHOD_SOURCE_INFO, SIGNAT_SOURCE_INFO, new Variable[] { classType.classObject() }); return sourceInfo; } catch (NoSuchMethodException | InvalidExpressionException ex) { return null; } }
private static Variable adjustQuotes(JPDADebugger debugger, ObjectVariable strVar) { String str = strVar.getValue(); str = str.substring(1, str.length() - 1); // getValue() adds quotes if (str.length() > 2 && str.startsWith("\"") && str.endsWith("\"")) { str = str.substring(1, str.length() - 1); try { return debugger.createMirrorVar(str); } catch (InvalidObjectException ex) { } } return strVar; }
public static String getRelativePath ( JPDAThread thread, String stratumn ) { try { return convertSlash (thread.getSourcePath (stratumn)); } catch (AbsentInformationException e) { return getRelativePath (thread.getClassName ()); } }
Super someClass; switch(someClass.getType()) { case ONE: //domSomething break; case TWO: //domSomeOtherThin break; //... }
public AttributeIterator() { try { reqAttributes = (ObjectVariable)owner.invokeMethod( "getAttributeNames", "()Ljava/util/Enumeration;", new Variable[0] ); } catch (InvalidExpressionException e) { } catch (NoSuchMethodException e) { } }
@Override public void propertyChange (PropertyChangeEvent e) { boolean en = shouldBeEnabled (); setEnabled ( ActionsManager.ACTION_FIX, en ); if (debugger.getState () == JPDADebugger.STATE_DISCONNECTED) { destroy (); } } @Override
static boolean isAnnotatable(Breakpoint b) { return (b instanceof LineBreakpoint || b instanceof FieldBreakpoint || b instanceof MethodBreakpoint || b instanceof ClassLoadUnloadBreakpoint) && !((JPDABreakpoint) b).isHidden(); }
@Override public void propertyChange (PropertyChangeEvent e) { boolean en = shouldBeEnabled (); setEnabled ( ActionsManager.ACTION_FIX, en ); if (debugger.getState () == JPDADebugger.STATE_DISCONNECTED) { destroy (); } } @Override
static boolean isAnnotatable(Breakpoint b) { return (b instanceof LineBreakpoint || b instanceof FieldBreakpoint || b instanceof MethodBreakpoint || b instanceof ClassLoadUnloadBreakpoint) && !((JPDABreakpoint) b).isHidden(); }