[ 
https://issues.apache.org/jira/browse/JEXL-222?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15925764#comment-15925764
 ] 

Dmitri Blinov commented on JEXL-222:
------------------------------------

It has worked for me with the following code: 
{code}
...        public Object propertySet(IndexedType.IndexedContainer map, String 
key, Integer value) {
            if 
(PropertyContainer.class.isAssignableFrom(map.getContainerClass())
                && map.getContainerName().equals("property")) {
                try {
                    map.set(key, value.toString());
                } catch (Exception xany) {
                    throw new JexlException.Operator(null, 
map.getContainerClass() + "." + key, xany);
                }
                return null;
            }
            return JexlEngine.TRY_FAILED;
        }
...
{code}

Great work, thanks!

> The ability to declare indexed property getter/setter in customised 
> JexlArithmetic implementation
> -------------------------------------------------------------------------------------------------
>
>                 Key: JEXL-222
>                 URL: https://issues.apache.org/jira/browse/JEXL-222
>             Project: Commons JEXL
>          Issue Type: Improvement
>    Affects Versions: 3.0
>            Reporter: Dmitri Blinov
>            Assignee: Henri Biestro
>            Priority: Minor
>             Fix For: 3.1
>
>
> At the moment we have the ability to declare a specific getter/setter method 
> in customized JexlArithmetic class that will be used by Jexl engine when 
> engine tries to get access to a property of some object. This is great 
> extension point of the Jexl but I have come to a situation where I need the 
> same technics to be applied to indexed properties. For example I'm scripting 
> org.w3c.dom.Element object by setting its attributes via its 
> {code}Element.setAttribute(java.lang.String name, java.lang.String value) 
> {code} method. In Jexl I use standard indexed property access syntax like the 
> following: {code} node.attribute.id = "12345"; {code} The problem lies with 
> the last argument of the setAttribute method which is of String class. And 
> for Jexl standard indexed property setter to work I should always remember 
> that in script I need to cast specified property value to a string, which is 
> error-prone and lacks, in my understanding, scripting easiness. I see the 
> solution as to introduce custom indexed property setter in more generalized 
> form, accepting Object type as a value so it could cast a value to String 
> before calling {{Element.setAttribute}}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to