ScopedLocalizableError should have public accessors for defaultName, key, and 
parameters
----------------------------------------------------------------------------------------

                 Key: STS-539
                 URL: http://www.stripesframework.org/jira/browse/STS-539
             Project: Stripes
          Issue Type: Improvement
          Components: Validation
    Affects Versions: Release 1.4.3, Release 1.5
         Environment: All
            Reporter: Ryan Asleson


I need the Stripes localization stuff to be more pluggable than it currently 
is.  Most specifically, for the validator annotations, I need to be able to 
specify the exact key that should be used to look up the field name from the 
custom content repository our applications use.

My thought is this:  first, leverage the new "label" attribute in the 
@Validation annotation and in it put the field name key.  For the field name 
key in the "label" attribute to be used to look up the field name from the 
content repository, I can subclass the ScopedLocalizableError class and 
override the resolveFieldName method (which is actually in the SimpleError 
superclass) to use the "label" attribute to look up the actual field name text 
from the content repository.

Since Stripes uses ScopedLocalizableError in several places (and can't be 
replaced) I'm thinking that I can create an Interceptor that uses the 
@Intercepts({LifecycleStage.BindingAndValidation}) annotation.  In the 
intercept method, I could get the validation errors from the ActionBeanContext, 
and then iterate through the errors.  For each ScopedLocalizableError, I would 
create an instance of MyScopedLocalizableError (which obviously extends 
ScopedLocalizableError) so the overridden resolveFieldName method can be used.  

However, there is no way to transfer the state of the ScopedLocalizableError to 
the new subclass I'm creating.  The subclass instance needs to have the same 
state as the ScopedLocalizableError.  Specifically, the parameters in 
ScopedLocalizableError's constructor -- defaultName, key, and the optional 
parameters -- need to have public getter methods.

Can ScopedLocalizableError be extended to include public getter methods for 
defaultName, key, and the optional parameters?  So I can do something like this

public class MyScopedLocalizableError extends ScopedLocalizableError {
    public MyScopedLocalizableError(ScopedLocalizableError error) {
        super(error.getDefaultName, error.getKey, error.getparameters);
    }

}




-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://www.stripesframework.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development

Reply via email to