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(); }