aboutsummaryrefslogtreecommitdiff
path: root/src/lombok/javac/handlers/PKG.java
AgeCommit message (Collapse)Author
2009-07-26Addresses issue #4:Reinier Zwitserloot
If boolean fields already start with a typical getter prefix (is, has, or get), lombok's @Getter will no longer generate its own prefix as well, so a field named 'hasFoo' will result in a getter named 'hasFoo()', not 'isHasFoo()'. Also, if any likely getter name already exists for a boolean, a getter will not be generated. Thus, if your field is called 'hasFoo', and you already have a method named 'isFoo', then @Getter will not generate anything (and warn, unless the getter is being generated due to @Data). This last mechanism works by taking the field name *AND* any other likely base names (defined by the field name being named as prefix+baseName, with prefix being is/has/get), and then prefixing all the likely fieldnames with is/has/get, and checking if any method with that name exists. Of course, this means weird things are going to happen if you have 2 fields named 'isFoo' and 'hasFoo', but then, you'd be a real idiot if you did that.
2009-07-06Last massive documentation dump. All basic javadoc is now done, though ↵Reinier Zwitserloot
especially the docs on the lombok annotations in the lombok package need far more massaging. Also added a feature to HandleSynchronized to not auto-generate the locker fields if a specific name is provided (because, imagine you typoed those. You'd never find it!)
2009-07-01Added @Synchronized support to javac. Seems to work well.Reinier Zwitserloot
2009-06-25javac's HandleData now makes equals methods.Reinier Zwitserloot
2009-06-24javac's HandleData now generates the constructor only if it doesn't already ↵Reinier Zwitserloot
exist, and the staticConstructor is now also completed. Left: toString, hashCode, equals.
2009-06-24Work on HandleData, as well as generalizing features in the the PKG class ↵Reinier Zwitserloot
and updating HandleGetter/Setter to call into it.
2009-06-21Due to a java bug, constants in enums don't work, so instead the default ↵Reinier Zwitserloot
access level for @Getter and @Setter have now just been hardcoded in GetterHandler and SetterHandler. Added ability to look up the Node object for any given AST object on Node itself, as you don't usually have the AST object. Added toString() method generating to @Data, and this required some fancy footwork in finding if we've already generated methods, and editing a generated method to fill in binding and type resolutions. HandleGetter and HandleSetter have been updated to use these features. Exceptions caused by lombok handlers show up in the eclipse error log, but now, if they are related to a CompilationUnit, also as a problem (error) on the CUD - those error log entries are easy to miss! Our ASTs can now be appended to. When you generate a new AST node, you should add it to the AST, obviously. Getter/Setter have been updated to use this.
2009-06-18Created a fully working HandleSetter for eclipse, and refactored ↵Reinier Zwitserloot
HandleGetter a little mostly to stuff common code into PKG.
2009-06-17Added 'does setX/getX already exist' check to javac's HandleGetter/Setter. ↵Reinier Zwitserloot
If they exist (with any returntype/paramlist), no getter/setter is generated, and instead a warning is added on the annotation.
2009-06-17Added the SetterHandler for javac. Also added a way to get the SymbolTable ↵Reinier Zwitserloot
on a JavacAST.Node, because you need it to e.g. access constant types like 'void'.
2009-06-17Massive refactors. This list isn't complete, but should give you an idea:Reinier Zwitserloot
A) many things in lombok.eclipse moved to lombok.core to enable reuse with lombok.javac. B) lombok.javac works now similarly to eclipse's model: We first make big ASTs that are bidirectionally traversable, then we walk through that for annotations. C) Instead of getting an annotation instance, you now get an object that is more flexible and can e.g. give you class values in an enum as a string instead of a Class object, which may fail if that class isn't on the classpath of lombok. D) sources to the internal sun classes for javac added to /contrib.
2009-06-16Implemented a lot of stuff for javac, but we ran into 2 major issues still ↵Reinier Zwitserloot
to be implemented: 1. The visit mode of a lombok handler (does not trigger off of annotations, instead sees every field, method, type, and statement), needs to be coded, 2. triggering off of annotations via APT's annotation handling system skips method-local classes. We'll need to recode this via an AST visitor like we need for issue #1 Other than that, triggering off of annotations works swimmingly!