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 }