String forwardRef = CompilerUtils.getString( annotation, FORWARD_REF_ATTR, true );
if ( forwardRef == null )
{
forwardRef = DEFAULT_SIMPLE_ACTION_FORWARD_NAME;
ForwardModel fwd = new SimpleActionForward( forwardRef, parentApp, annotation, jclass );
if ( fwd.getPath() != null || fwd.isReturnToAction() || fwd.isReturnToPage() || fwd.isNestedReturn() )
{
addForward( fwd );
}
}
setDefaultForwardName( forwardRef );
List conditionalFwdAnnotations =
CompilerUtils.getAnnotationArray( annotation, CONDITIONAL_FORWARDS_ATTR, true );
if ( conditionalFwdAnnotations != null )
{
int anonCount = 0;
for ( Iterator ii = conditionalFwdAnnotations.iterator(); ii.hasNext(); )
{
AnnotationInstance conditionalFwdAnnotation = ( AnnotationInstance ) ii.next();
ForwardModel conditionalFwd = new SimpleActionForward( parentApp, conditionalFwdAnnotation, jclass );
String expression = CompilerUtils.getString( conditionalFwdAnnotation, CONDITION_ATTR, true );
assert expression != null;
if ( conditionalFwd.getName() == null ) conditionalFwd.setName( "_anon" + ++anonCount );
addForward( conditionalFwd );
addConditionalForward( expression, conditionalFwd.getName() );
}
}
}