This is an interesting view, Barney, more so because it seems wrong to
me. Why would it not be the domain of "store" to also do a validate?
Consider a Person CFC, which has an age property. The age must be a
number greater or equal to zero, but less then 150 (or some such). Why
would "store" want to assume that you passed it valid data? Sure it can
validate (using <cfargument>) that the value was a number, but it can't
validate that it's a "proper" number. I guess it comes down to - why do
you assume the caller will send you proper data? You say validate is a
tool to help the calling code - and I agree with that - but why can't it
help other methods as well? I can certainly see the client calling
validate() to ensure the data it wants to pass to store() is safe, but
I'd assume store() would assume the user is always forgetful, and should
therefore do the anal thing and validate() as well.

========================================================================
===
Raymond Camden, ColdFusion Jedi Master for Mindseye, Inc
(www.mindseye.com)
Member of Team Macromedia (http://www.macromedia.com/go/teammacromedia)

Email    : [EMAIL PROTECTED]
Blog     : www.camdenfamily.com/morpheus/blog
Yahoo IM : morpheus

"My ally is the Force, and a powerful ally it is." - Yoda 

> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf Of Barney Boisvert
> Sent: Monday, October 06, 2003 11:52 AM
> To: [EMAIL PROTECTED]
> Subject: RE: [CFCDev] Data validation
> 
> 
> I would highly recommend that your 'store' method does NOT 
> through an exception unless there is a problem.  Having it 
> check to see if 'validate' was called is not it's job.  It's 
> job is to merely disallow the operation if it can't proceed, 
> and whether 'validate' was called has no bearing on that. 
> 'validate' is a tool to help the calling code determine what 
> an exception means in a way that can help it be resolved.
> 
> You want me to structure my code this way (which is perfectly legit):
> 
> <cfset errors = myCFC.validate() />
> <cfif structCount(errors) GT 0>
>   <!--- error display --->
> <cfelse>
>   <cfset myCFC.store() />
> </cfif>
> 
> But I like to do it this way, since we have an exception 
> handling mechanism in CF.  It just reads cleaner than a bunch 
> of CFIFs that are doing exception handling.  And in this 
> case, it'll also save me from generating that error struct 
> unless I need it.
> 
> <cftry>
>   <cfset myCFC.store() />
>   <cfcatch type="IllegalStateException">
>     <cfset errors = myCFC.validate() />
>     <!--- error display --->
>   </cfcatch>
> </cftry>
> 


----------------------------------------------------------
You are subscribed to cfcdev. To unsubscribe, send an email
to [EMAIL PROTECTED] with the word 'unsubscribe cfcdev' 
in the message of the email.

CFCDev is run by CFCZone (www.cfczone.org) and supported
by Mindtool, Corporation (www.mindtool.com).

An archive of the CFCDev list is available at www.mail-archive.com/[EMAIL PROTECTED]

Reply via email to