The best thing that I learnt today when dealing with Java was to name your classes with a great deal of intellectual propensity. Do you designs normally and find some design pattern that follows your thought and call it compliant.
The more of esoteric interfaces and crazy objects you have flowing around the more appealing your application sounds.
Couple this with some crazy adapters there you have a solid output.
If you want to actually write a sensible working application use Python and be done with it.