The developers of ECJ are clearly very experienced OO programmers, making extensive use of interfaces, inheritance, sophisticated design patterns, etc. I'm therefore curious: why are fields generally public, rather than accessed via getters and setters as OO orthodoxy would suggest? Was this a deliberate decision made in the name of convenience or efficiency?

Peter Drake
http://www.lclark.edu/~drake/