sclass Tok_SettableWithChangeFields > Tok_SettableOrGettableFields { *() { super("settableWithChange"); } *(S keyword) { super(keyword); } S replacement() { ret tok_formatDollarVars( "$fMod selfType $var aka $setVar($type $var) { if (!eq(this.$var, $var)) { this.$var = $var; change(); } this; }\n" + "gettable $modifiers $type", fMod := joinWithSpace(functionModifiers()) + " public", modifiers := joinWithSpace(modifiers), +type, +var, setVar := "set" + firstToUpper(var)); } }