{
if ( oParamClass.isAssignableFrom( Form.class ) )
{
if ( _oHttpServletRequest == null )
{
throw new ParameterProviderException( oParamClass + " not available in this context" );
}
oParamValue = _oModelPool.getSystemModel( Form.class, _oHttpServletRequest );
}
else if ( oParamClass.isAssignableFrom( HttpServletRequest.class ) )
{
if ( _oHttpServletRequest == null )
{
throw new ParameterProviderException( oParamClass + " not available in this context" );
}
oParamValue = _oHttpServletRequest;
}
else if ( oParamClass.isAssignableFrom( URLResolver.class ) )
{
if ( _oRedirectResolverExecutor == null )
{
throw new ParameterProviderException( oParamClass + " not available in this context" );
}
oParamValue = _oModelPool.getSystemModel( URLResolver.class, _oHttpServletRequest );
}
else
{
oParamValue = _oModelPool.getModel( oParamClass, _oHttpServletRequest );
}
if ( oParamValue == null )
{
throw ( new ParameterProviderException( sMessagePrefix + oParamClass ) );
}
return oParamValue;
}
catch ( MethodNotFoundException e )
{ throw new ParameterProviderException( sMessagePrefix + oParamClass, e ); }
catch ( InvocationTargetException e )
{ throw new ParameterProviderException( sMessagePrefix + oParamClass, e ); }
catch ( ClassNotFoundException e )
{ throw new ParameterProviderException( sMessagePrefix + oParamClass, e ); }
catch ( ConstructorNotFoundException e )
{ throw new ParameterProviderException( sMessagePrefix + oParamClass, e ); }
catch ( IllegalAccessException e )
{ throw new ParameterProviderException( sMessagePrefix + oParamClass, e ); }
catch ( InstantiationException e )
{ throw new ParameterProviderException( sMessagePrefix + oParamClass, e ); }
}