init.addObserverMethod( eventType, method, this, observer.create() );
}
}
if ( method.isAnnotationPresent(RequestParameter.class) )
{
RequestParameter rp = method.getAnnotation(RequestParameter.class);
String name = toName( rp.value(), method );
parameterSetters.add( new BijectedMethod(name, method, rp) );
}
if ( method.isAnnotationPresent(PRE_PASSIVATE) )
{
prePassivateMethod = method;
lifecycleMethods.add(method);
}
if ( method.isAnnotationPresent(POST_ACTIVATE) )
{
postActivateMethod = method;
lifecycleMethods.add(method);
}
if ( method.isAnnotationPresent(POST_CONSTRUCT) )
{
postConstructMethod = method;
lifecycleMethods.add(method);
}
if ( method.isAnnotationPresent(PRE_DESTROY) )
{
preDestroyMethod = method;
lifecycleMethods.add(method);
}
if ( method.isAnnotationPresent(PERSISTENCE_CONTEXT) )
{
if ( !type.isSessionBean() && type!=MESSAGE_DRIVEN_BEAN )
{
throw new IllegalArgumentException("@PersistenceContext may only be used on session bean or message driven bean components: " + name);
}
pcAttributes.add( new BijectedMethod( toName(null, method), method, null ) );
}
if ( method.isAnnotationPresent(Begin.class) ||
method.isAnnotationPresent(End.class) ||
method.isAnnotationPresent(StartTask.class) ||
method.isAnnotationPresent(BeginTask.class) ||
method.isAnnotationPresent(EndTask.class) )
{
conversationManagementMethods.add(method);
}
for ( Annotation ann: method.getAnnotations() )
{
if ( ann.annotationType().isAnnotationPresent(DataBinderClass.class) )
{
String name = toName( createWrapper(ann).getVariableName(ann), method );
dataModelGetters.add( new BijectedMethod(name, method, ann) );
dataModelNames.add(name);
}
if ( ann.annotationType().isAnnotationPresent(DataSelectorClass.class) )
{
selectionSetters.put(method, ann);
}
}
if ( !method.isAccessible() )
{
method.setAccessible(true);
}
}
for ( Field field: clazz.getDeclaredFields() )
{
if ( !field.isAccessible() )
{
field.setAccessible(true);
}
if ( field.isAnnotationPresent(In.class) )
{
In in = field.getAnnotation(In.class);
String name = toName( in.value(), field );
inAttributes.add( new BijectedField(name, field, in) );
}
if ( field.isAnnotationPresent(Out.class) )
{
Out out = field.getAnnotation(Out.class);
String name = toName( out.value(), field );
outAttributes.add(new BijectedField(name, field, out) );
}
if ( field.isAnnotationPresent(DataModel.class) ) //TODO: generalize
{
checkDataModelScope( field.getAnnotation(DataModel.class) );
}
if ( field.isAnnotationPresent(RequestParameter.class) )
{
RequestParameter rp = field.getAnnotation(RequestParameter.class);
String name = toName( rp.value(), field );
parameterSetters.add( new BijectedField(name, field, rp) );
}
if ( field.isAnnotationPresent(org.jboss.seam.annotations.Logger.class) )
{
String category = field.getAnnotation(org.jboss.seam.annotations.Logger.class).value();