08_advanced_continuations/src/OrderData.java

/*
 * Copyright 2001-2006 Geert Bevin <gbevin[remove] at uwyn dot com>
 * Distributed under the terms of either:
 * - the common development and distribution license (CDDL), v1.0; or
 * - the GNU Lesser General Public License, v2.1 or later
 * $Id: OrderData.java 3364 2006-07-10 10:33:29Z gbevin $
 */
import com.uwyn.rife.site.ConstrainedBean;
import com.uwyn.rife.site.ConstrainedProperty;
import com.uwyn.rife.site.MetaData;

public class OrderData extends MetaData<ConstrainedBean, ConstrainedProperty> {
    public final static String  GROUND = "ground";
    public final static String  EXPRESS = "express";
    public final static String  AIR = "air";
    
    public final static String  AMEX = "amex";
    public final static String  VISA = "visa";
    public final static String  MASTERCARD = "mastercard";
    
    private String  shippingMethod;
    private String  creditCardType;
    private String  creditCardNumber;
    private String  creditCardExpiration;
    
    public void activateMetaData() {
        addGroup("shipping")
            .addConstraint(new ConstrainedProperty("shippingMethod")
                           .notNull(true)
                           .inList(new String[] {GROUND, EXPRESS, AIR}));
        
        addGroup("creditcard")
            .addConstraint(new ConstrainedProperty("creditCardType")
                           .notNull(true)
                           .inList(new String[] {AMEX, VISA, MASTERCARD}))
            .addConstraint(new ConstrainedProperty("creditCardNumber")
                           .notNull(true)
                           .maxLength(16))
            .addConstraint(new ConstrainedProperty("creditCardExpiration")
                           .notNull(true)
                           .maxLength(5));
    }
    
    public void     setShippingMethod(String shippingMethod)                { this.shippingMethod = shippingMethod; }
    public String   getShippingMethod()                                     { return shippingMethod; }
    public void     setCreditCardType(String creditCardType)                { this.creditCardType = creditCardType; }
    public String   getCreditCardType()                                     { return creditCardType; }
    public void     setCreditCardNumber(String creditCardNumber)            { this.creditCardNumber = creditCardNumber; }
    public String   getCreditCardNumber()                                   { return creditCardNumber; }
    public void     setCreditCardExpiration(String creditCardExpiration)    { this.creditCardExpiration = creditCardExpiration; }
    public String   getCreditCardExpiration()                               { return creditCardExpiration; }
}