It does look much cleaner to have a single item like
String MyTV { gc100ir="[#living|1|1|MAP(sharpaquos.map)]" }
and look up the string version of the sent command in a map file like:
ON=38000,1,1,10,70,10,30,10,30,10,30,10,70,10,30,10,70,10,30,10,70,10,30,10,30,10,70,10,30,10,70,10,30,10,1657,10,70,10,30,10,30,10,30,10,70,10,70,10,30,10,70,10,30,10,70,10,70,10,30,10,70,10,30,10,70,10,1657
OFF=38000,1,1,10,70,10,30,10,30,10,30,10,70,10,70,10,70,10,30,10,70,10,30,10,30,10,70,10,30,10,70,10,30,10,1657,10,70,10,30,10,30,10,30,10,70,10,30,10,30,10,70,10,30,10,70,10,70,10,30,10,70,10,30,10,70,10,1657
VID4=38000,1,1,11,70,11,30,11,30,11,30,11,30,11,70,11,30,11,70,11,70,11,30,11,30,11,70,11,70,11,70,11,30,11,1587,11,70,11,30,11,30,11,30,11,30,11,30,11,70,11,30,11,30,11,70,11,70,11,30,11,30,11,30,11,70,11,1830
CH2=38000,1,1,10,70,10,30,10,30,10,30,10,30,10,30,10,70,10,30,10,30,10,30,10,30,10,30,10,30,10,70,10,30,10,1657,10,70,10,30,10,30,10,30,10,30,10,70,10,30,10,70,10,70,10,70,10,70,10,70,10,70,10,30,10,70,10,1657
The code could be changed to use any named transform in place of the IR codes, take in the sent command, and upon successfully transforming it, send those codes. Great idea.