In Fuel you can do:
String >> fuelSubstitution
^ ExternalCompressor compress: self
String >> fuelAccept: aVisitor
^ (ExternalCompressor shouldCompressString: self)
ifTrue: [aVisitor visitSubstitution: self]
ifFalse: [super fuelAccept: aVisitor]
But the problem is that if #compress: answers an instance of String, you should be careful that if #shouldCompressString:�
asnwers true to the compressed string, then you will end up in an infinitive loop.
See:
http://rmod.lille.inria.fr/web/pier/software/Fuel/Hooks and FLHookedSubstitutionTest
I think StOMP should support this as well:
http://stomp.smalltalk-users.jp/home/how-to-use-stomp/hook-methodsThe previous hook you let you replace the original String with its compression during serialization. Which make sense because if you are going to compress it is better to do it during serialization.