I tend to also prefer a response message. Adding something new like a
boolean flag puts more information for people to process needlessly. Less
is more I think.

On Dec 29, 2016 12:55 AM, "Jacques Le Roux" <[email protected]>
wrote:

> Yes, I wondered about that.
>
> In my case the following simplified code would work, because it's used
> before running the service.
> I guess it's how it should be used (why running isValid() before
> running?). So I guess we can simply use that
>
>     public boolean isValid(Map<String, Object> context, String mode,
> Locale locale) {
>         try {
>             validate(context, mode, locale);
>         } catch (ServiceValidationException e) {
>             return false;
>         }
>         return true;
>     }
>
> Other opinions?
>
> Jacques
>
>
> Le 28/12/2016 à 21:48, Scott Gray a écrit :
>
>> I guess it depends on how this will be used but I think there is a big
>> difference between " // do not validate results with errors" and returning
>> false from an isValid method.  IMO an error output response is perfectly
>> valid.
>>
>> Regards
>> Scott
>>
>> On 28 December 2016 at 21:47, <[email protected]> wrote:
>>
>> Author: jleroux
>>> Date: Wed Dec 28 08:47:25 2016
>>> New Revision: 1776243
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1776243&view=rev
>>> Log:
>>> Implemented: Add a isValid() method to the ModelService class
>>> (OFBIZ-9158)
>>>
>>> The idea is to use validate() to render a boolean result. I needed that
>>> in
>>> a
>>> custom project, I think it's worth contributing.
>>>
>>> Modified:
>>>      ofbiz/trunk/framework/service/src/main/java/org/apache/
>>> ofbiz/service/ModelService.java
>>>
>>> Modified: ofbiz/trunk/framework/service/src/main/java/org/apache/
>>> ofbiz/service/ModelService.java
>>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/
>>> src/main/java/org/apache/ofbiz/service/ModelService.
>>> java?rev=1776243&r1=1776242&r2=1776243&view=diff
>>> ============================================================
>>> ==================
>>> --- ofbiz/trunk/framework/service/src/main/java/org/apache/
>>> ofbiz/service/ModelService.java (original)
>>> +++ ofbiz/trunk/framework/service/src/main/java/org/apache/
>>> ofbiz/service/ModelService.java Wed Dec 28 08:47:25 2016
>>> @@ -600,6 +600,32 @@ public class ModelService extends Abstra
>>>       }
>>>
>>>       /**
>>> +     * Validates a Map against the IN or OUT parameter information
>>> +     * Same than validate() with same signature but returns a boolean
>>> instead of exceptions
>>> +     * @param context the context
>>> +     * @param mode Test either mode IN or mode OUT
>>> +     * @param locale the actual locale to use
>>> +     */
>>> +    public boolean isValid(Map<String, Object> context, String mode,
>>> Locale locale) {
>>> +        boolean verboseOn = Debug.verboseOn();
>>> +        if (verboseOn) Debug.logVerbose("[ModelService.validate] : {" +
>>> this.name + "} : Validating context - " + context, module);
>>> +
>>> +        // do not validate results with errors
>>> +        if (mode.equals(OUT_PARAM) && context != null &&
>>> context.containsKey(RESPONSE_MESSAGE)) {
>>> +            if (RESPOND_ERROR.equals(context.get(RESPONSE_MESSAGE)) ||
>>> RESPOND_FAIL.equals(context.get(RESPONSE_MESSAGE))) {
>>> +                if (verboseOn) Debug.logVerbose("[ModelServic
>>> e.validate]
>>> : {" + this.name + "} : response was an error, not validating.",
>>> module);
>>> +                return false;
>>> +            }
>>> +        }
>>> +        try {
>>> +            validate(context, mode, locale);
>>> +        } catch (ServiceValidationException e) {
>>> +            return false;
>>> +        }
>>> +        return true;
>>> +    }
>>> +
>>> +    /**
>>>        * Validates a map of name, object types to a map of name, objects
>>>        * @param info The map of name, object types
>>>        * @param test The map to test its value types.
>>>
>>>
>>>
>>>
>

Reply via email to