Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Validating Field names

 
Padmaja Prasad
Ranch Hand
Posts: 76
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
My criteriaFind() method does not validate each of the field names in the criteria string seperately. Instaed it checks the whole record for name-value pair in the criteria string. It will return an empty DataInfo [] object if the field name is wrong or the criteria String is not valid. Is this approach good??
Also, the field names in the criteria String must exactly match with the field names of the record. So the criteria "Origin='SFO'" will get an empty DataInfo array.(Only "Origin airpot='SFO'" is valid).
Please let me know if anything is wrong...
Thanks
Padmaja
 
Thomas Fly
Ranch Hand
Posts: 164
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Padmaja,
My requirements state:
Note that only exact matches need to be handled in this criteriaFind(String) method./QUOTE]so I'd say you're mostly all right. I think it would be fair (though I don't do it this way) to define "Origin" as a field name, however.
Originally posted by Padmaja Prasad:
Also, the field names in the criteria String must exactly match with the field names of the record. So the criteria "Origin='SFO'" will get an empty DataInfo array.(Only "Origin airpot='SFO'" is valid).
Please let me know if anything is wrong...
Yes... I believe "Origin airpot" (unless you're trying to smuggle marijuana in your luggage).
 
Thomas Fly
Ranch Hand
Posts: 164
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
P.S. Obviously this forum software is in need of non-greedy regular expressions...
 
Michael Morris
Ranch Hand
Posts: 3451
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Padmaja,

My criteriaFind() method does not validate each of the field names in the criteria string seperately. Instaed it checks the whole record for name-value pair in the criteria string. It will return an empty DataInfo [] object if the field name is wrong or the criteria String is not valid. Is this approach good??

That's probably OK but may not be as efficient as verifying the field names first since you can short-circuit the search on the first invalid field. Also, how do you handle an ANY situation? It seems to me that yours is an additive method as opposed to the easier subtractive method of gathering the matching records.

Also, the field names in the criteria String must exactly match with the field names of the record. So the criteria "Origin='SFO'" will get an empty DataInfo array.(Only "Origin airpot='SFO'" is valid).
Please let me know if anything is wrong...

That's fine. That's exactly what I did. Since it is assumed that your program builds the criteria, that should always work.
Hope this helps,
Michael Morris
 
Padmaja Prasad
Ranch Hand
Posts: 76
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for your reply.
I apologise for mis-spelling airport.
Originally posted by Michael Morris:
That's probably OK but may not be as efficient as verifying the field names first since you can short-circuit the search on the first invalid field. Also, how do you handle an ANY situation? It seems to me that yours is an additive method as opposed to the easier subtractive method of gathering the matching records.

Hi Michael, I am constructing HashMaps that maps field name with data value for both the criteria string and every record in DB and then comparing their entrySets(using containsAll()). (Not using the for loop for finding the record match)
I'm handling ANY condition like this :
I'm not adding the field to the criteria string if it has ANY value. If the criteria String is empty, then before constructing the Maps, it'll simply return getAllRecords()(method defined in Data which returns an array of DataInfo containg all records).

That's fine. That's exactly what I did. Since it is assumed that your program builds the criteria, that should always work.
Hope this helps,
Michael Morris

Thank you so much, Your advise & guidence really helps me a lot.
Thanks
Padmaja
[ September 27, 2002: Message edited by: Padmaja Prasad ]
 
Thomas Fly
Ranch Hand
Posts: 164
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hmm...
Originally posted by Thomas Fly:
P.S. Obviously this forum software is in need of non-greedy regular expressions...

Originally posted by Thomas Fly:
P.S. Obviously this forum software is in need of non-greedy regular expressions...

Maybe the forum software just needs a preview capability...
 
Michael Morris
Ranch Hand
Posts: 3451
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Padmaja,

I am constructing HashMaps that maps field name with data value for both the criteria string and every record in DB and then comparing their entrySets(using containsAll()). (Not using the for loop for finding the record match)
I'm handling ANY condition like this :
I'm not adding the field to the criteria string if it has ANY value. If the criteria String is empty, then before constructing the Maps, it'll simply return getAllRecords()(method defined in Data which returns an array of DataInfo containg all records).

That's essentially what I did so I guess I was just a little confused on your initial post.
Michael Morris
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic