public Object invoke( ModuleInstance module, Object source, Object[] args, QvtOperationalEvaluationEnv evalEnv) { String self = (String) source; self = self.trim(); StringBuilder buf = new StringBuilder(self.length()); boolean isWhiteArea = false; for (int i = 0; i < self.length(); i++) { char c = self.charAt(i); if (UCharacter.isWhitespace(c)) { if (isWhiteArea) { continue; } isWhiteArea = true; buf.append(c); } else { isWhiteArea = false; buf.append(c); } } return buf.toString(); }