Reviewers: bobv,

Message:
Ready for review.

Bob, I'm pretty anxious about FieldReference#ensureAssignable, which
tries to check that the field's return value matches whatever type it's
expected to provide. I'm sure its too simplistic, but I'm not sure what
I can do about it.

Description:
{Field.references} are now validated. Also fixes unreported code gen bug
when size attributes were missing under g:DockLayoutPanel

All AttributeParser implementations register any field references they
encounter with the FieldManager. When parsing is done, all references
are validated for the existence of the fields and the methods they refer
to, and for correct return types. Multiple validation errors can be
reported.

The real meat of the patch is kicked off at FieldManager#validate, into
FieldReference#validate, and through the two implementations of
FieldWriter#getReturnType in AbstractFieldWriter and
FieldWriterOfGeneratedCssResource

This required retooling the AttributeParser world, so there is a lot of
collateral change across that package. Their dependencies are now
provided via constructor injection, and they are no longer instantiated
reflectively (thank goodness). The dependency chain is actually
something like AttributeParser -> FieldReferenceConverter ->
FieldManager.

Custom ElementParsers must now be more disciplined, and provide the
JType they intend a consumed attribute to provide. (Most did this
already.)


Please review this at http://gwt-code-reviews.appspot.com/102804

Affected files:
   M user/src/com/google/gwt/uibinder/attributeparsers/AttributeParser.java
   M user/src/com/google/gwt/uibinder/attributeparsers/AttributeParsers.java
   M  
user/src/com/google/gwt/uibinder/attributeparsers/BooleanAttributeParser.java
   M  
user/src/com/google/gwt/uibinder/attributeparsers/BundleAttributeParser.java
   M  
user/src/com/google/gwt/uibinder/attributeparsers/DoubleAttributeParser.java
   M  
user/src/com/google/gwt/uibinder/attributeparsers/EnumAttributeParser.java
   M  
user/src/com/google/gwt/uibinder/attributeparsers/FieldReferenceConverter.java
   M  
user/src/com/google/gwt/uibinder/attributeparsers/HorizontalAlignmentConstantParser.java
   M  
user/src/com/google/gwt/uibinder/attributeparsers/IntAttributeParser.java
   M user/src/com/google/gwt/uibinder/attributeparsers/IntPairParser.java
   M  
user/src/com/google/gwt/uibinder/attributeparsers/StrictAttributeParser.java
   M  
user/src/com/google/gwt/uibinder/attributeparsers/StringAttributeParser.java
   M  
user/src/com/google/gwt/uibinder/attributeparsers/VerticalAlignmentConstantParser.java
   M user/src/com/google/gwt/uibinder/elementparsers/BeanParser.java
   M  
user/src/com/google/gwt/uibinder/elementparsers/ComputedAttributeInterpreter.java
   M user/src/com/google/gwt/uibinder/elementparsers/CustomButtonParser.java
   M  
user/src/com/google/gwt/uibinder/elementparsers/DisclosurePanelParser.java
   M  
user/src/com/google/gwt/uibinder/elementparsers/DockLayoutPanelParser.java
   M  
user/src/com/google/gwt/uibinder/elementparsers/StackLayoutPanelParser.java
   M  
user/src/com/google/gwt/uibinder/elementparsers/TabLayoutPanelParser.java
   M user/src/com/google/gwt/uibinder/rebind/AbstractFieldWriter.java
   M user/src/com/google/gwt/uibinder/rebind/FieldManager.java
   A user/src/com/google/gwt/uibinder/rebind/FieldReference.java
   M user/src/com/google/gwt/uibinder/rebind/FieldWriter.java
   M user/src/com/google/gwt/uibinder/rebind/FieldWriterOfExistingType.java
   A  
user/src/com/google/gwt/uibinder/rebind/FieldWriterOfGeneratedCssResource.java
   M user/src/com/google/gwt/uibinder/rebind/FieldWriterOfGeneratedType.java
   M user/src/com/google/gwt/uibinder/rebind/HandlerEvaluator.java
   A user/src/com/google/gwt/uibinder/rebind/MonitoredLogger.java
   M user/src/com/google/gwt/uibinder/rebind/UiBinderGenerator.java
   M user/src/com/google/gwt/uibinder/rebind/UiBinderParser.java
   M user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java
   M user/src/com/google/gwt/uibinder/rebind/XMLElement.java
   M user/src/com/google/gwt/uibinder/rebind/model/ImplicitCssResource.java
   M  
user/test/com/google/gwt/uibinder/attributeparsers/FieldReferenceConverterTest.java
   M  
user/test/com/google/gwt/uibinder/attributeparsers/IntAttributeParserTest.java
   M  
user/test/com/google/gwt/uibinder/attributeparsers/StrictAttributeParserTest.java
   M  
user/test/com/google/gwt/uibinder/attributeparsers/StringAttributeParserTest.java
   M  
user/test/com/google/gwt/uibinder/elementparsers/DockLayoutPanelParserTest.java
   M  
user/test/com/google/gwt/uibinder/elementparsers/ElementParserTester.java
   M user/test/com/google/gwt/uibinder/elementparsers/UiJavaResources.java
   M user/test/com/google/gwt/uibinder/rebind/XMLElementTest.java
   A user/test/com/google/gwt/uibinder/test/UiJavaResources.java



--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to