001    /*
002     * Created on Aug 5, 2005
003     *
004     */
005    package aima.learning.framework;
006    
007    /**
008     * @author Ravi Mohan
009     * 
010     */
011    import java.util.Arrays;
012    import java.util.List;
013    
014    public class StringAttributeSpecification implements AttributeSpecification {
015            String attributeName;
016    
017            List<String> attributePossibleValues;
018    
019            public StringAttributeSpecification(String attributeName,
020                            List<String> attributePossibleValues) {
021                    this.attributeName = attributeName;
022                    this.attributePossibleValues = attributePossibleValues;
023            }
024    
025            public StringAttributeSpecification(String attributeName,
026                            String[] attributePossibleValues) {
027                    this(attributeName, Arrays.asList(attributePossibleValues));
028            }
029    
030            public boolean isValid(String value) {
031                    return (attributePossibleValues.contains(value));
032            }
033    
034            /**
035             * @return Returns the attributeName.
036             */
037            public String getAttributeName() {
038                    return attributeName;
039            }
040    
041            public List<String> possibleAttributeValues() {
042                    return attributePossibleValues;
043            }
044    
045            public Attribute createAttribute(String rawValue) {
046                    return new StringAttribute(rawValue, this);
047            }
048    }