001    // Copyright (c) 2001 Hursh Jain (http://www.mollypages.org) 
002    // The Molly framework is freely distributable under the terms of an
003    // MIT-style license. For details, see the molly pages web site at:
004    // http://www.mollypages.org/. Use, modify, have fun !
005    
006    package fc.web.forms;
007    
008    import javax.servlet.*;
009    import javax.servlet.http.*;
010    import java.io.*;
011    import java.util.*;
012    import java.util.regex.*;
013    
014    import fc.jdbc.*;
015    import fc.io.*;
016    import fc.util.*;
017    
018    /**
019    Validates that some condition/state for a group of fields
020    implies some other condition/state for another group of fields.
021    The pre/post conditions are both the result of {@VFilledGroup}
022    validators attached to the pre/post fields.
023    
024    @author hursh jain
025    **/
026    public abstract class VFilledOnFilled  extends VConditional
027    {
028    VFilledGroup pre;
029    VFilledGroup post;
030    
031    /** 
032    @param  name      name for this validator
033    @param  errorMessage  validation error message
034    @param  preValidator  a pre condition validator
035    @param  postValidator a post condition validator
036    */
037    public VFilledOnFilled(
038     Form f, String name, String errorMessage, 
039     VFilledGroup preValidator, VFilledGroup postValidator)
040      {
041      super(f, name, errorMessage);
042      Argcheck.istrue(preValidator != null, "specified pre validator was null");
043      Argcheck.istrue(postValidator != null, "specified post validator was null");
044      this.pre = preValidator;
045      this.post = postValidator;
046      }
047    
048    public boolean preConditionMet(FormData fd, HttpServletRequest req)
049      {
050      return pre.validate(fd, req);
051      }
052    
053    public boolean postConditionMet(FormData fd, HttpServletRequest req)
054      {
055      return post.validate(fd, req);
056      } 
057    
058    }          //~class VFilledOnFilled
059