@Override
 public boolean marathon_select(String value) {
   JComponent spinnerEditor = ((JSpinner) component).getEditor();
   if (spinnerEditor == null)
     throw new JavaAgentException("Null value returned by getEditor() on spinner", null);
   IJavaElement ele = JavaElementFactory.createElement(spinnerEditor, driver, window);
   ele.marathon_select(value);
   try {
     ((JSpinner) component).commitEdit();
   } catch (Throwable t) {
   }
   return true;
 }
 @Override
 public String _getText() {
   IJavaElement editor = JavaElementFactory.createElement(getEditor(), getDriver(), getWindow());
   return editor.getText();
 }
 @Override
 public List<IJavaElement> match(IJavaElement je) {
   Object[] params = new Object[args.length];
   for (int i = 0; i < args.length; i++) params[i] = args[i].getValue();
   return je.getByPseudoElement(function, params);
 }