package quickml.supervised.tree.attributeIgnoringStrategies;
import com.google.common.collect.Lists;
import quickml.supervised.tree.nodes.Branch;
import java.util.List;
/**
* Created by alexanderhawk on 2/28/15.
*/
public class CompositeAttributeIgnoringStrategy implements AttributeIgnoringStrategy {
private static final long serialVersionUID = 0L;
private List<AttributeIgnoringStrategy> attributeIgnoringStrategies = Lists.newArrayList();
public CompositeAttributeIgnoringStrategy(List<AttributeIgnoringStrategy> attributeIgnoringStrategies) {
this.attributeIgnoringStrategies = attributeIgnoringStrategies;
}
@Override
public CompositeAttributeIgnoringStrategy copy() {
List<AttributeIgnoringStrategy> copies = Lists.newArrayList();
for (AttributeIgnoringStrategy attributeIgnoringStrategy : attributeIgnoringStrategies) {
copies.add(attributeIgnoringStrategy.copy());
}
return new CompositeAttributeIgnoringStrategy(copies);
}
@Override
public boolean ignoreAttribute(String attribute, Branch parent) {
for (AttributeIgnoringStrategy attributeIgnoringStrategy : attributeIgnoringStrategies) {
if (attributeIgnoringStrategy.ignoreAttribute(attribute, parent)) {
return true;
}
}
return false;
}
@Override
public String toString() {
return "CompositeAttributeIgnoringStrategy{" +
"oldAttributeIgnoringStrategies=" + attributeIgnoringStrategies +
'}';
}
}