package com.blazebit.ai.decisiontree.impl; import com.blazebit.ai.decisiontree.AttributeValue; import com.blazebit.ai.decisiontree.DecisionNode; import com.blazebit.ai.decisiontree.DecisionNodeFactory; import com.blazebit.ai.decisiontree.DiscreteAttribute; import com.blazebit.ai.decisiontree.Example; import java.util.Collections; import java.util.HashSet; import java.util.Set; /** * * @author Christian Beikov */ public class SimpleDiscreteAttribute extends AbstractAttribute implements DiscreteAttribute { private final Set<AttributeValue> values; public SimpleDiscreteAttribute(final String name, final Set<? extends AttributeValue> values){ super(name); this.values = Collections.unmodifiableSet(new HashSet<AttributeValue>(values)); } @Override public Set<AttributeValue> getValues(){ return values; } @Override public <T> DecisionNode<T> createNode(final DecisionNodeFactory decisionNodeFactory, final Set<Example<T>> examples){ return new DiscreteDecisionNode(decisionNodeFactory, this, examples); } }