Adding JMCR-Stable version
[Benchmarks_CSolver.git] / JMCR-Stable / mcr-controller / src / edu / tamu / aser / scheduling / filtering / SchedulingFilter.java
diff --git a/JMCR-Stable/mcr-controller/src/edu/tamu/aser/scheduling/filtering/SchedulingFilter.java b/JMCR-Stable/mcr-controller/src/edu/tamu/aser/scheduling/filtering/SchedulingFilter.java
new file mode 100644 (file)
index 0000000..e30c470
--- /dev/null
@@ -0,0 +1,23 @@
+package edu.tamu.aser.scheduling.filtering;
+
+import java.util.SortedSet;
+
+import edu.tamu.aser.scheduling.strategy.ChoiceType;
+
+/**
+ * Interface that can be implemented to specify a scheduling filter that
+ * restricts scheduling choices.
+ */
+public interface SchedulingFilter {
+
+    /**
+     * Computes and returns a filtered {@link SortedSet} of choices.
+     * 
+     * @param choices
+     *            the original {@link SortedSet} of choices.
+     * @param choiceType
+     *            the {@link ChoiceType}.
+     * @return a filtered {@link SortedSet} of choices.
+     */
+    public SortedSet<? extends Object> filterChoices(SortedSet<? extends Object> choices, ChoiceType choiceType);
+}