AbstractMessageFormatTemplateMethod.java 文件源码

java
阅读 23 收藏 0 点赞 0 评论 0

项目:lutece-core 作者:
@Override
public Object exec( @SuppressWarnings( "rawtypes" ) List arguments ) throws TemplateModelException
{
    int argsSize = arguments.size( );

    if ( argsSize < 1 )
    {
        throw new TemplateModelException( "Must be called with at least one argument (the message key)" );
    }

    String key = ( (TemplateScalarModel) arguments.get( 0 ) ).getAsString( );
    Locale locale = Environment.getCurrentEnvironment( ).getLocale( );

    if ( argsSize == 1 )
    {
        // no arguments, the message is not a MessageFormat
        return getPattern( key, locale );
    }

    Object [ ] args = new Object [ argsSize - 1];

    for ( int i = 1; i < argsSize; i++ )
    {
        TemplateModel arg = (TemplateModel) arguments.get( i );

        if ( arg instanceof TemplateScalarModel )
        {
            args [i - 1] = ( (TemplateScalarModel) arg ).getAsString( );
        }
        else
            if ( arg instanceof TemplateNumberModel )
            {
                args [i - 1] = ( (TemplateNumberModel) arg ).getAsNumber( );
            }
            else
                if ( arg instanceof TemplateDateModel )
                {
                    args [i - 1] = ( (TemplateDateModel) arg ).getAsDate( );
                }
                else
                {
                    throw new TemplateModelException( "Unsupported argument type : " + arg );
                }
    }

    return new MessageFormat( getPattern( key, locale ), locale ).format( args, new StringBuffer( ), null ).toString( );
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号