Hello Justin,

you already got a lot of feedback from dan, and I agree with him but i have additional input (please treat as constructive critic):

Generally:

*) The file headers say "Copyright Adobe Systems ... "
*) Casting Booleans to Numbers ... I am not sure if I like that.
*) I you have code without braces if() else I am not sure if that is okay in the current code conventionn.
*) You mix tabs and spaces! (at many occasions) afaik its 4 spaces indent
*) You mix "brace in new line" (left) with "brace in current line" (right), afaik its in the current line. *) You have string checks like "if(value)" this also checks on "" but that is actually a valid "format", right? *) if() { return ... } return; is less good readable compared to if() { return } else {return} again: Not sure what the style guide says.

Specifically
*) You only need one "Errorset" in the at PostCodeValidator.as - 193 . Why not just store the error set with the fewest count
var wrongNess: Number = invalidFormat + invalidChar + (wrongLength*1.5);
if( wrongNess > 0 && error && error.wrongNess > wrongNess) {
error = {
wrongNess: wrongNess
};
}
*) PostCodeValidator.as - 564: Why don't you use var but cast to a String again? *) I have seen Japanese people writing their postal code with the unicode character prefix: 〒 That is not an accepted Format *) Japanese do have wide format numbers that they also like to use in postal adresses: 0123456789 *) extraValidation is not sufficiently documented: No mention that the input can be null, no mention that the output has to be one of the error types that it can deal with. I would expect following signature: extraValidation(postCode:String, baseField:String):Vector.<ValidationResult>;

Architecturally:

*) The static function validatePostCode uses many "properties" of the validator. I would change the method signature to function validatePostCode(postCode:String, baseField:String, formats:Array=null, countryCode:String=null, extraValidation:Function=null):Array

This way it doesn't have a dependency to the "dataholder" Validator. That might actually make more sense if this function were in its own function file. Consequently you wouldn't have a dependency to PostCodeValidator in PostCodeFormatter *) I would put the static functions in their own function file to reduce dependency hell. *) suggestFormat Should be separated from the Validator as it is not "necessary" to use the Validator (dependencies, dependencies) *) The approach to "wrong-ness" seems quite arbitrary and a ineffective: If a format has a difference in length of 5 and another format has a difference in length of 200 then the difference of 5 might be more appropriate. *) Having no format equals: Never an error? Shouldn't one format be required?

And some questions:

*) Why do is it restricted to FP 10.2? Does it not work in former versions? Why do you use Array instead of Vector in the validator? (FP10.2 supported Vector)
*) @private
public function set formats

What is this setter good for?

yours
Martin.

Reply via email to