001 package com.thaiopensource.validate;
002
003 import com.thaiopensource.util.PropertyId;
004 import com.thaiopensource.util.PropertyMap;
005 import com.thaiopensource.util.PropertyMapBuilder;
006
007 /**
008 * A PropertyId whose value is constrained to be an instance of
009 * String.
010 *
011 * @see String
012 */
013
014 public class StringPropertyId extends PropertyId {
015 public StringPropertyId(String name) {
016 super(name, String.class);
017 }
018
019 /**
020 * Returns the value of the property. This is a typesafe
021 * version of <code>PropertyMap.get</code>.
022 *
023 * @param properties the PropertyMap to be used
024 * @return the String to which the PropertyMap maps this PropertyId,
025 * or <code>null</code> if this PropertyId is not in the PropertyMap
026 * @see com.thaiopensource.util.PropertyMap#get
027 */
028 public String get(PropertyMap properties) {
029 return (String)properties.get(this);
030 }
031
032 /**
033 * Sets the value of the property. Modifies the PropertyMapBuilder
034 * so that this PropertyId is mapped to the specified value. This
035 * is a typesafe version of PropertyMapBuilder.put.
036 *
037 * @param builder the PropertyMapBuilder to be modified
038 * @param value the String to which this PropertyId is to be mapped
039 * @return the String to which this PropertyId was mapped before,
040 * or <code>null</code> if it was not mapped
041 *
042 * @see com.thaiopensource.util.PropertyMapBuilder#put
043 */
044 public String put(PropertyMapBuilder builder, String value) {
045 return (String)builder.put(this, value);
046 }
047 }