public Object invoke(
     ModuleInstance module,
     Object source,
     Object[] args,
     QvtOperationalEvaluationEnv evalEnv) {
   StringCounter.getInstance(evalEnv).restartAll();
   return null;
 }
        public Object invoke(
            ModuleInstance module,
            Object source,
            Object[] args,
            QvtOperationalEvaluationEnv evalEnv) {
          Object leftVal = args[0];
          if (leftVal == null && leftVal == CallHandlerAdapter.getInvalidResult(evalEnv)) {
            return false;
          }

          String counterName = (String) leftVal;
          return StringCounter.getInstance(evalEnv).increment(counterName);
        }
        public Object invoke(
            ModuleInstance module,
            Object source,
            Object[] args,
            QvtOperationalEvaluationEnv evalEnv) {
          String self = (String) source;
          StringCounter counters = StringCounter.getInstance(evalEnv);
          Integer currentValue = counters.value(self);

          if (currentValue == null) {
            counters.start(self);
            return self;
          }

          counters.increment(self);
          return self + currentValue.toString();
        }