package org.jactr.core.production.condition.match; /* * default logging */ import java.util.ArrayList; import java.util.Collection; import java.util.Set; import java.util.TreeSet; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jactr.core.production.condition.ICondition; import org.jactr.core.slot.IConditionalSlot; import org.jactr.core.slot.IUniqueSlotContainer; public class UnresolvedVariablesMatchFailure extends AbstractMatchFailure { /** * Logger definition */ static private final transient Log LOGGER = LogFactory .getLog(UnresolvedVariablesMatchFailure.class); private final Collection<IConditionalSlot> _unresolved; private final Set<String> _possible; private IUniqueSlotContainer _container; public UnresolvedVariablesMatchFailure(ICondition condition, Collection<IConditionalSlot> unresolved, Set<String> possible, IUniqueSlotContainer container) { super(condition); _unresolved = new ArrayList<IConditionalSlot>(unresolved); _possible = new TreeSet<String>(possible); _container = container; } public UnresolvedVariablesMatchFailure( Collection<IConditionalSlot> unresolved, Set<String> possible, IUniqueSlotContainer container) { this(null, unresolved, possible, container); } public Collection<IConditionalSlot> getUnresolvedSlots() { return _unresolved; } public Set<String> getPossibleVariables() { return _possible; } public IUniqueSlotContainer getContainer() { return _container; } @Override public String toString() { return String.format("%d unresolved conditions %s. Possible : %s", _unresolved.size(), _unresolved, _possible); } }