code: @Override
      public Object evaluate() throws ActivityException {
          try {
              scriptLanguage = getAttributeValue(SCRIPT_LANGUAGE);
              expression = getAttributeValue(EXPRESSION);
              if (StringHelper.isEmpty(expression)){
                  throw new ActivityException("Expression content has not been defined");
              }
  
              String name = ScriptNaming.getValidName(getProcessDefinition().getLabel() + "_"
                      + getActivityName() + "_" + getActivityId());
              name = Character.toUpperCase(name.charAt(0)) + name.substring(1);
              Object obj = evaluateExpression(name, scriptLanguage, expression);
              if ((obj == null || obj.toString().isEmpty()) && isBooleanExpression(scriptLanguage, expression))
                  obj = Boolean.FALSE;
              return obj;
          }
          catch (ExecutionException ex) {
              logger.severeException(ex.getMessage(), ex);
              throw new ActivityException(-1, ex.getMessage(), ex);
          }
      }
docs: Evaluates a condition and returns the result of the evaluation. The condition is an expression
  in a supported script/rule language.  WorkTransition can be controlled using the result.