Hi Can you share the page/component where you are using this annotation. May be you are not initializing the list that you are annotating.
I have a similar worker and it works perfectly. regards Taha On Fri, Feb 25, 2011 at 10:23 PM, Tibo23 <thibault.malbra...@gmail.com>wrote: > > Hello all, > > Here is my Tapestry 5.2 code for InjectSelectionModelWorker. > Its aim is to add these 2 methods > > public GenericSelectionModel<Menu> getEntitiesSelectionModel () { > return (new GenericSelectionModel<Menu>(getEntities (), > "label", > _access)); > } > > public GenericValueEncoder<Menu> getEntitiesValueEncoder () { > return (new GenericValueEncoder<Menu>(getEntities (), "id", > _access)); > } > > thanks to the annotation > @InjectSelectionModel(fieldId = "id", fieldLabel = "label") > > The problem is that lList is null. > > > > public class InjectSelectionModelWorker implements > ComponentClassTransformWorker { > > private PropertyAccess mPropertyAccess; > > public InjectSelectionModelWorker (PropertyAccess pPropertyAccess) { > mPropertyAccess = pPropertyAccess; > } > > public void transform (ClassTransformation pClassTransformation, > MutableComponentModel pMutableComponentModel) { > for (TransformField lTransformField : > matchInjectSelectionModelFields > (pClassTransformation)) { > addCodeMethodsForInjectSelectionModelField > (pClassTransformation, > pMutableComponentModel, lTransformField); > } > } > > private void addCodeMethodsForInjectSelectionModelField > (ClassTransformation pClassTransformation, MutableComponentModel > pMutableComponentModel, TransformField pTransformField) { > InjectSelectionModel lAnnotation = > pTransformField.getAnnotation > (InjectSelectionModel.class); > String lInjectSelectionModelFieldName = > InternalUtils.stripMemberName > (pTransformField.getName ()); > String lInjectSelectionModelFieldId = lAnnotation.fieldId > (); > String lInjectSelectionModelFieldLabel = > lAnnotation.fieldLabel (); > addGetValueEncoderMethod (pClassTransformation, > pTransformField, > lInjectSelectionModelFieldName, lInjectSelectionModelFieldId); > addGetSelectionModelMethod (pClassTransformation, > pTransformField, > lInjectSelectionModelFieldName, lInjectSelectionModelFieldLabel); > } > > private void addGetValueEncoderMethod (ClassTransformation > pClassTransformation, TransformField pTransformField, String > pInjectSelectionModelFieldName, final String pInjectSelectionModelFieldId) > { > String lMethodName = "get" + InternalUtils.capitalize > (InternalUtils.stripMemberName (pInjectSelectionModelFieldName)) + > "ValueEncoder"; > TransformMethodSignature lTransformMethodSignature = new > TransformMethodSignature (Modifier.PUBLIC, > (GenericValueEncoder.class).getName (), lMethodName, null, null); > ensureNotOverride (pClassTransformation, > lTransformMethodSignature); > final FieldAccess lFieldAccess = pTransformField.getAccess > (); > pClassTransformation.getOrCreateMethod > (lTransformMethodSignature).addAdvice (new ComponentMethodAdvice () { > public void advise (ComponentMethodInvocation > lComponentMethodInvocation) > { > Object lList = lFieldAccess.read > (lComponentMethodInvocation.getInstance > ()); > > System.out.println > ("*******************************" + lList); > > lComponentMethodInvocation.overrideResult > (new GenericValueEncoder > ((List)lList, pInjectSelectionModelFieldId, mPropertyAccess)); > } > }); > } > > } > > Thanks a lot for your help. > > Regards. > > -- > View this message in context: > http://tapestry.1045711.n5.nabble.com/FieldAccess-could-not-read-transformedField-tp3400430p3400430.html > Sent from the Tapestry - User mailing list archive at Nabble.com. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >