public Object getObject ( FaceletContext ctx , Class type ) { if ( ( this . capabilities & EL_LITERAL ) != 0 ) { if ( String . class . equals ( type ) ) { return this . value ; } else { try { return ctx . getExpressionFactory ( ) . coerceToType ( this . value , type ) ; } catch ( Exception e ) { throw new TagAttributeException ( this , e ) ; } } } else { ValueExpression ve = this . getValueExpression ( ctx , type ) ; try { return ve . getValue ( ctx ) ; } catch ( Exception e ) { throw new TagAttributeException ( this , e ) ; } } }
If literal simply coerce our String literal value using an ExpressionFactory otherwise create a ValueExpression and evaluate it .