RemoteInterpreter extends Interpreter { static boolean isEnvString(String key) { if (key == null || key.length() == 0) { return false; } return key.matches("^[A-Z_0-9]*"); } RemoteInterpreter(Properties property,
      String noteId,
      String className,
      String interpreterRunner,
      String interpreterPath,
      String localRepoPath,
      int connectTimeout,
      int maxPoolSize,
      RemoteInterpreterProcessListener remoteInterpreterProcessListener);  RemoteInterpreter(Properties property,
      String noteId,
      String className,
      String interpreterRunner,
      String interpreterPath,
      String localRepoPath,
      Map<String, String> env,
      int connectTimeout,
      RemoteInterpreterProcessListener remoteInterpreterProcessListener); @Override String getClassName(); RemoteInterpreterProcess getInterpreterProcess(); synchronized void init(); @Override void open(); @Override void close(); @Override InterpreterResult interpret(String st, InterpreterContext context); @Override void cancel(InterpreterContext context); @Override FormType getFormType(); @Override int getProgress(InterpreterContext context); @Override List<InterpreterCompletion> completion(String buf, int cursor); @Override Scheduler getScheduler();  }
@Test public void testEnvStringPattern() { assertFalse(RemoteInterpreter.isEnvString(null)); assertFalse(RemoteInterpreter.isEnvString("")); assertFalse(RemoteInterpreter.isEnvString("abcDEF")); assertFalse(RemoteInterpreter.isEnvString("ABC-DEF")); assertTrue(RemoteInterpreter.isEnvString("ABCDEF")); assertTrue(RemoteInterpreter.isEnvString("ABC_DEF")); assertTrue(RemoteInterpreter.isEnvString("ABC_DEF123")); }