001    package com.thaiopensource.validate;
002    
003    import com.thaiopensource.validate.Flag;
004    import com.thaiopensource.util.PropertyId;
005    import com.thaiopensource.util.PropertyMapBuilder;
006    
007    /**
008     * A PropertyId whose value is not significant. Its significance
009     * rests purely on whether it is present in a PropertyMap.  The
010     * value is constrained to be Flag.PRESENT.
011     *
012     * @see Flag
013     */
014    public class FlagPropertyId extends PropertyId {
015      public FlagPropertyId(String name) {
016        super(name, Flag.class);
017      }
018    
019      /**
020       * Adds this property to a PropertyMapBuilder. Modifies
021       * the PropertyMapBuilder so that this PropertyId is
022       * mapped to Flag.PRESENT.
023       *
024       * @param builder the PropertyMapBuilder to be modified
025       */
026      public void add(PropertyMapBuilder builder) {
027        builder.put(this, Flag.PRESENT);
028      }
029    }